Index: /ctrl/firmware/Main/CubeMX/Core/Inc/main.h
===================================================================
--- /ctrl/firmware/Main/CubeMX/Core/Inc/main.h	(revision 44)
+++ /ctrl/firmware/Main/CubeMX/Core/Inc/main.h	(revision 45)
@@ -58,4 +58,10 @@
 
 /* Private defines -----------------------------------------------------------*/
+#define SPI4_NSS_DISPLAY_Pin GPIO_PIN_11
+#define SPI4_NSS_DISPLAY_GPIO_Port GPIOE
+#define SPI4_SCK_DISPLAY_Pin GPIO_PIN_12
+#define SPI4_SCK_DISPLAY_GPIO_Port GPIOE
+#define SPI4_MOSI_DISPLAY_Pin GPIO_PIN_14
+#define SPI4_MOSI_DISPLAY_GPIO_Port GPIOE
 
 /* USER CODE BEGIN Private defines */
Index: /ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_hal_conf.h
===================================================================
--- /ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_hal_conf.h	(revision 44)
+++ /ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_hal_conf.h	(revision 45)
@@ -73,5 +73,5 @@
 /* #define HAL_MMC_MODULE_ENABLED   */
 /* #define HAL_SPDIFRX_MODULE_ENABLED   */
-/* #define HAL_SPI_MODULE_ENABLED   */
+#define HAL_SPI_MODULE_ENABLED
 /* #define HAL_SWPMI_MODULE_ENABLED   */
 /* #define HAL_TIM_MODULE_ENABLED   */
Index: /ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_it.h
===================================================================
--- /ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_it.h	(revision 44)
+++ /ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_it.h	(revision 45)
@@ -56,4 +56,6 @@
 void PendSV_Handler(void);
 void SysTick_Handler(void);
+void DMA1_Stream0_IRQHandler(void);
+void SPI4_IRQHandler(void);
 /* USER CODE BEGIN EFP */
 
Index: /ctrl/firmware/Main/CubeMX/Core/Src/main.c
===================================================================
--- /ctrl/firmware/Main/CubeMX/Core/Src/main.c	(revision 44)
+++ /ctrl/firmware/Main/CubeMX/Core/Src/main.c	(revision 45)
@@ -44,4 +44,7 @@
 RTC_HandleTypeDef hrtc;
 
+SPI_HandleTypeDef hspi4;
+DMA_HandleTypeDef hdma_spi4_tx;
+
 /* USER CODE BEGIN PV */
 
@@ -52,5 +55,7 @@
 static void MPU_Config(void);
 static void MX_GPIO_Init(void);
+static void MX_DMA_Init(void);
 static void MX_RTC_Init(void);
+static void MX_SPI4_Init(void);
 /* USER CODE BEGIN PFP */
 
@@ -102,5 +107,7 @@
   /* Initialize all configured peripherals */
   MX_GPIO_Init();
+  MX_DMA_Init();
   MX_RTC_Init();
+  MX_SPI4_Init();
   /* USER CODE BEGIN 2 */
 
@@ -150,11 +157,11 @@
   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
-  RCC_OscInitStruct.PLL.PLLM = 25;
-  RCC_OscInitStruct.PLL.PLLN = 200;
+  RCC_OscInitStruct.PLL.PLLM = 5;
+  RCC_OscInitStruct.PLL.PLLN = 40;
   RCC_OscInitStruct.PLL.PLLP = 2;
   RCC_OscInitStruct.PLL.PLLQ = 2;
   RCC_OscInitStruct.PLL.PLLR = 2;
-  RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_0;
-  RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOMEDIUM;
+  RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2;
+  RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
   RCC_OscInitStruct.PLL.PLLFRACN = 0;
   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
@@ -219,4 +226,68 @@
 
 /**
+  * @brief SPI4 Initialization Function
+  * @param None
+  * @retval None
+  */
+static void MX_SPI4_Init(void)
+{
+
+  /* USER CODE BEGIN SPI4_Init 0 */
+
+  /* USER CODE END SPI4_Init 0 */
+
+  /* USER CODE BEGIN SPI4_Init 1 */
+
+  /* USER CODE END SPI4_Init 1 */
+  /* SPI4 parameter configuration*/
+  hspi4.Instance = SPI4;
+  hspi4.Init.Mode = SPI_MODE_MASTER;
+  hspi4.Init.Direction = SPI_DIRECTION_1LINE;
+  hspi4.Init.DataSize = SPI_DATASIZE_9BIT;
+  hspi4.Init.CLKPolarity = SPI_POLARITY_LOW;
+  hspi4.Init.CLKPhase = SPI_PHASE_1EDGE;
+  hspi4.Init.NSS = SPI_NSS_HARD_OUTPUT;
+  hspi4.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
+  hspi4.Init.FirstBit = SPI_FIRSTBIT_MSB;
+  hspi4.Init.TIMode = SPI_TIMODE_DISABLE;
+  hspi4.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+  hspi4.Init.CRCPolynomial = 0x0;
+  hspi4.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
+  hspi4.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;
+  hspi4.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;
+  hspi4.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
+  hspi4.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
+  hspi4.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE;
+  hspi4.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE;
+  hspi4.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;
+  hspi4.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE;
+  hspi4.Init.IOSwap = SPI_IO_SWAP_DISABLE;
+  if (HAL_SPI_Init(&hspi4) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN SPI4_Init 2 */
+
+  /* USER CODE END SPI4_Init 2 */
+
+}
+
+/**
+  * Enable DMA controller clock
+  */
+static void MX_DMA_Init(void)
+{
+
+  /* DMA controller clock enable */
+  __HAL_RCC_DMA1_CLK_ENABLE();
+
+  /* DMA interrupt init */
+  /* DMA1_Stream0_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);
+  HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
+
+}
+
+/**
   * @brief GPIO Initialization Function
   * @param None
@@ -231,4 +302,5 @@
   __HAL_RCC_GPIOC_CLK_ENABLE();
   __HAL_RCC_GPIOH_CLK_ENABLE();
+  __HAL_RCC_GPIOE_CLK_ENABLE();
 
 /* USER CODE BEGIN MX_GPIO_Init_2 */
Index: /ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_hal_msp.c
===================================================================
--- /ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_hal_msp.c	(revision 44)
+++ /ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_hal_msp.c	(revision 45)
@@ -24,4 +24,5 @@
 
 /* USER CODE END Includes */
+extern DMA_HandleTypeDef hdma_spi4_tx;
 
 /* Private typedef -----------------------------------------------------------*/
@@ -133,4 +134,118 @@
 }
 
+/**
+* @brief SPI MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hspi: SPI handle pointer
+* @retval None
+*/
+void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+  if(hspi->Instance==SPI4)
+  {
+  /* USER CODE BEGIN SPI4_MspInit 0 */
+
+  /* USER CODE END SPI4_MspInit 0 */
+
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI4;
+    PeriphClkInitStruct.PLL2.PLL2M = 3;
+    PeriphClkInitStruct.PLL2.PLL2N = 40;
+    PeriphClkInitStruct.PLL2.PLL2P = 2;
+    PeriphClkInitStruct.PLL2.PLL2Q = 11;
+    PeriphClkInitStruct.PLL2.PLL2R = 2;
+    PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_3;
+    PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOWIDE;
+    PeriphClkInitStruct.PLL2.PLL2FRACN = 0.0;
+    PeriphClkInitStruct.Spi45ClockSelection = RCC_SPI45CLKSOURCE_PLL2;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    /* Peripheral clock enable */
+    __HAL_RCC_SPI4_CLK_ENABLE();
+
+    __HAL_RCC_GPIOE_CLK_ENABLE();
+    /**SPI4 GPIO Configuration
+    PE11     ------> SPI4_NSS
+    PE12     ------> SPI4_SCK
+    PE14     ------> SPI4_MOSI
+    */
+    GPIO_InitStruct.Pin = SPI4_NSS_DISPLAY_Pin|SPI4_SCK_DISPLAY_Pin|SPI4_MOSI_DISPLAY_Pin;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+    GPIO_InitStruct.Alternate = GPIO_AF5_SPI4;
+    HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+    /* SPI4 DMA Init */
+    /* SPI4_TX Init */
+    hdma_spi4_tx.Instance = DMA1_Stream0;
+    hdma_spi4_tx.Init.Request = DMA_REQUEST_SPI4_TX;
+    hdma_spi4_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
+    hdma_spi4_tx.Init.PeriphInc = DMA_PINC_DISABLE;
+    hdma_spi4_tx.Init.MemInc = DMA_MINC_ENABLE;
+    hdma_spi4_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
+    hdma_spi4_tx.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
+    hdma_spi4_tx.Init.Mode = DMA_NORMAL;
+    hdma_spi4_tx.Init.Priority = DMA_PRIORITY_LOW;
+    hdma_spi4_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
+    if (HAL_DMA_Init(&hdma_spi4_tx) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    __HAL_LINKDMA(hspi,hdmatx,hdma_spi4_tx);
+
+    /* SPI4 interrupt Init */
+    HAL_NVIC_SetPriority(SPI4_IRQn, 0, 0);
+    HAL_NVIC_EnableIRQ(SPI4_IRQn);
+  /* USER CODE BEGIN SPI4_MspInit 1 */
+
+  /* USER CODE END SPI4_MspInit 1 */
+
+  }
+
+}
+
+/**
+* @brief SPI MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hspi: SPI handle pointer
+* @retval None
+*/
+void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
+{
+  if(hspi->Instance==SPI4)
+  {
+  /* USER CODE BEGIN SPI4_MspDeInit 0 */
+
+  /* USER CODE END SPI4_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_SPI4_CLK_DISABLE();
+
+    /**SPI4 GPIO Configuration
+    PE11     ------> SPI4_NSS
+    PE12     ------> SPI4_SCK
+    PE14     ------> SPI4_MOSI
+    */
+    HAL_GPIO_DeInit(GPIOE, SPI4_NSS_DISPLAY_Pin|SPI4_SCK_DISPLAY_Pin|SPI4_MOSI_DISPLAY_Pin);
+
+    /* SPI4 DMA DeInit */
+    HAL_DMA_DeInit(hspi->hdmatx);
+
+    /* SPI4 interrupt DeInit */
+    HAL_NVIC_DisableIRQ(SPI4_IRQn);
+  /* USER CODE BEGIN SPI4_MspDeInit 1 */
+
+  /* USER CODE END SPI4_MspDeInit 1 */
+  }
+
+}
+
 /* USER CODE BEGIN 1 */
 
Index: /ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c
===================================================================
--- /ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c	(revision 44)
+++ /ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c	(revision 45)
@@ -56,5 +56,6 @@
 
 /* External variables --------------------------------------------------------*/
-
+extern DMA_HandleTypeDef hdma_spi4_tx;
+extern SPI_HandleTypeDef hspi4;
 /* USER CODE BEGIN EV */
 
@@ -199,4 +200,32 @@
 /******************************************************************************/
 
+/**
+  * @brief This function handles DMA1 stream0 global interrupt.
+  */
+void DMA1_Stream0_IRQHandler(void)
+{
+  /* USER CODE BEGIN DMA1_Stream0_IRQn 0 */
+
+  /* USER CODE END DMA1_Stream0_IRQn 0 */
+  HAL_DMA_IRQHandler(&hdma_spi4_tx);
+  /* USER CODE BEGIN DMA1_Stream0_IRQn 1 */
+
+  /* USER CODE END DMA1_Stream0_IRQn 1 */
+}
+
+/**
+  * @brief This function handles SPI4 global interrupt.
+  */
+void SPI4_IRQHandler(void)
+{
+  /* USER CODE BEGIN SPI4_IRQn 0 */
+
+  /* USER CODE END SPI4_IRQn 0 */
+  HAL_SPI_IRQHandler(&hspi4);
+  /* USER CODE BEGIN SPI4_IRQn 1 */
+
+  /* USER CODE END SPI4_IRQn 1 */
+}
+
 /* USER CODE BEGIN 1 */
 
Index: /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi.h
===================================================================
--- /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi.h	(revision 45)
+++ /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi.h	(revision 45)
@@ -0,0 +1,1130 @@
+/**
+  ******************************************************************************
+  * @file    stm32h7xx_hal_spi.h
+  * @author  MCD Application Team
+  * @brief   Header file of SPI 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 STM32H7xx_HAL_SPI_H
+#define STM32H7xx_HAL_SPI_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32h7xx_hal_def.h"
+
+/** @addtogroup STM32H7xx_HAL_Driver
+  * @{
+  */
+
+/** @addtogroup SPI
+  * @{
+  */
+
+/* Exported types ------------------------------------------------------------*/
+/** @defgroup SPI_Exported_Types SPI Exported Types
+  * @{
+  */
+
+/**
+  * @brief  SPI Configuration Structure definition
+  */
+typedef struct
+{
+  uint32_t Mode;                              /*!< Specifies the SPI operating mode.
+                                                     This parameter can be a value of @ref SPI_Mode */
+
+  uint32_t Direction;                         /*!< Specifies the SPI bidirectional mode state.
+                                                     This parameter can be a value of @ref SPI_Direction */
+
+  uint32_t DataSize;                          /*!< Specifies the SPI data size.
+                                                     This parameter can be a value of @ref SPI_Data_Size */
+
+  uint32_t CLKPolarity;                       /*!< Specifies the serial clock steady state.
+                                                     This parameter can be a value of @ref SPI_Clock_Polarity */
+
+  uint32_t CLKPhase;                          /*!< Specifies the clock active edge for the bit capture.
+                                                     This parameter can be a value of @ref SPI_Clock_Phase */
+
+  uint32_t NSS;                               /*!< Specifies whether the NSS signal is managed by
+                                                     hardware (NSS pin) or by software using the SSI bit.
+                                                     This parameter can be a value of
+                                                     @ref SPI_Slave_Select_Management */
+
+  uint32_t BaudRatePrescaler;                 /*!< Specifies the Baud Rate prescaler value which will be
+                                                     used to configure the transmit and receive SCK clock.
+                                                     This parameter can be a value of @ref SPI_BaudRate_Prescaler
+                                                     @note The communication clock is derived from the master
+                                                     clock. The slave clock does not need to be set. */
+
+  uint32_t FirstBit;                          /*!< Specifies whether data transfers start from MSB or LSB bit.
+                                                     This parameter can be a value of @ref SPI_MSB_LSB_Transmission */
+
+  uint32_t TIMode;                            /*!< Specifies if the TI mode is enabled or not.
+                                                     This parameter can be a value of @ref SPI_TI_Mode */
+
+  uint32_t CRCCalculation;                    /*!< Specifies if the CRC calculation is enabled or not.
+                                                     This parameter can be a value of @ref SPI_CRC_Calculation */
+
+  uint32_t CRCPolynomial;                     /*!< Specifies the polynomial used for the CRC calculation.
+                                                     This parameter must be an odd number between
+                                                     Min_Data = 0 and Max_Data = 65535 */
+
+  uint32_t CRCLength;                         /*!< Specifies the CRC Length used for the CRC calculation.
+                                                     This parameter can be a value of @ref SPI_CRC_length */
+
+  uint32_t NSSPMode;                          /*!< Specifies whether the NSSP signal is enabled or not .
+                                                     This parameter can be a value of @ref SPI_NSSP_Mode
+                                                     This mode is activated by the SSOM bit in the SPIx_CR2 register
+                                                     and it takes effect only if the SPI interface is configured
+                                                     as Motorola SPI master (FRF=0). */
+
+  uint32_t NSSPolarity;                       /*!< Specifies which level of SS input/output external signal
+                                                     (present on SS pin) is considered as active one.
+                                                     This parameter can be a value of @ref SPI_NSS_Polarity */
+
+  uint32_t FifoThreshold;                     /*!< Specifies the FIFO threshold level.
+                                                     This parameter can be a value of @ref SPI_Fifo_Threshold */
+
+  uint32_t TxCRCInitializationPattern;        /*!< Specifies the transmitter CRC initialization Pattern used for
+                                                     the CRC calculation. This parameter can be a value of
+                                                     @ref SPI_CRC_Calculation_Initialization_Pattern */
+
+  uint32_t RxCRCInitializationPattern;        /*!< Specifies the receiver CRC initialization Pattern used for
+                                                     the CRC calculation. This parameter can be a value of
+                                                     @ref SPI_CRC_Calculation_Initialization_Pattern */
+
+  uint32_t MasterSSIdleness;                  /*!< Specifies an extra delay, expressed in number of SPI clock cycle
+                                                     periods, inserted additionally between active edge of SS
+                                                     and first data transaction start in master mode.
+                                                     This parameter can be a value of @ref SPI_Master_SS_Idleness */
+
+  uint32_t MasterInterDataIdleness;           /*!< Specifies minimum time delay (expressed in SPI clock cycles periods)
+                                                     inserted between two consecutive data frames in master mode.
+                                                     This parameter can be a value of
+                                                     @ref SPI_Master_InterData_Idleness */
+
+  uint32_t MasterReceiverAutoSusp;            /*!< Control continuous SPI transfer in master receiver mode
+                                                     and automatic management in order to avoid overrun condition.
+                                                     This parameter can be a value of @ref SPI_Master_RX_AutoSuspend*/
+
+  uint32_t MasterKeepIOState;                 /*!< Control of Alternate function GPIOs state
+                                                     This parameter can be a value of @ref SPI_Master_Keep_IO_State */
+
+  uint32_t IOSwap;                            /*!< Invert MISO/MOSI alternate functions
+                                                     This parameter can be a value of @ref SPI_IO_Swap */
+} SPI_InitTypeDef;
+
+/**
+  * @brief  HAL SPI State structure definition
+  */
+typedef enum
+{
+  HAL_SPI_STATE_RESET      = 0x00UL,    /*!< Peripheral not Initialized                         */
+  HAL_SPI_STATE_READY      = 0x01UL,    /*!< Peripheral Initialized and ready for use           */
+  HAL_SPI_STATE_BUSY       = 0x02UL,    /*!< an internal process is ongoing                     */
+  HAL_SPI_STATE_BUSY_TX    = 0x03UL,    /*!< Data Transmission process is ongoing               */
+  HAL_SPI_STATE_BUSY_RX    = 0x04UL,    /*!< Data Reception process is ongoing                  */
+  HAL_SPI_STATE_BUSY_TX_RX = 0x05UL,    /*!< Data Transmission and Reception process is ongoing */
+  HAL_SPI_STATE_ERROR      = 0x06UL,    /*!< SPI error state                                    */
+  HAL_SPI_STATE_ABORT      = 0x07UL     /*!< SPI abort is ongoing                               */
+} HAL_SPI_StateTypeDef;
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+/**
+  * @brief  SPI Reload Structure definition
+  */
+typedef struct
+{
+  const uint8_t              *pTxBuffPtr;                  /*!< Pointer to SPI Tx transfer Buffer        */
+
+  uint16_t                   TxXferSize;                   /*!< SPI Tx Transfer size to reload           */
+
+  uint8_t                    *pRxBuffPtr;                  /*!< Pointer to SPI Rx transfer Buffer        */
+
+  uint16_t                   RxXferSize;                   /*!< SPI Rx Transfer size to reload           */
+
+  uint32_t                   Requested;                    /*!< SPI reload request                       */
+
+} SPI_ReloadTypeDef;
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+/**
+  * @brief  SPI handle Structure definition
+  */
+typedef struct __SPI_HandleTypeDef
+{
+  SPI_TypeDef                *Instance;                    /*!< SPI registers base address               */
+
+  SPI_InitTypeDef            Init;                         /*!< SPI communication parameters             */
+
+  const uint8_t              *pTxBuffPtr;                  /*!< Pointer to SPI Tx transfer Buffer        */
+
+  uint16_t                   TxXferSize;                   /*!< SPI Tx Transfer size                     */
+
+  __IO uint16_t              TxXferCount;                  /*!< SPI Tx Transfer Counter                  */
+
+  uint8_t                    *pRxBuffPtr;                  /*!< Pointer to SPI Rx transfer Buffer        */
+
+  uint16_t                   RxXferSize;                   /*!< SPI Rx Transfer size                     */
+
+  __IO uint16_t              RxXferCount;                  /*!< SPI Rx Transfer Counter                  */
+
+  uint32_t                   CRCSize;                      /*!< SPI CRC size used for the transfer       */
+
+  void (*RxISR)(struct __SPI_HandleTypeDef *hspi);         /*!< function pointer on Rx ISR               */
+
+  void (*TxISR)(struct __SPI_HandleTypeDef *hspi);         /*!< function pointer on Tx ISR               */
+
+  DMA_HandleTypeDef          *hdmatx;                      /*!< SPI Tx DMA Handle parameters             */
+
+  DMA_HandleTypeDef          *hdmarx;                      /*!< SPI Rx DMA Handle parameters             */
+
+  HAL_LockTypeDef            Lock;                         /*!< Locking object                           */
+
+  __IO HAL_SPI_StateTypeDef  State;                        /*!< SPI communication state                  */
+
+  __IO uint32_t              ErrorCode;                    /*!< SPI Error code                           */
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+
+  SPI_ReloadTypeDef          Reload;                       /*!< SPI reload parameters                    */
+
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+  void (* TxCpltCallback)(struct __SPI_HandleTypeDef *hspi);       /*!< SPI Tx Completed callback          */
+  void (* RxCpltCallback)(struct __SPI_HandleTypeDef *hspi);       /*!< SPI Rx Completed callback          */
+  void (* TxRxCpltCallback)(struct __SPI_HandleTypeDef *hspi);     /*!< SPI TxRx Completed callback        */
+  void (* TxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi);   /*!< SPI Tx Half Completed callback     */
+  void (* RxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi);   /*!< SPI Rx Half Completed callback     */
+  void (* TxRxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI TxRx Half Completed callback   */
+  void (* ErrorCallback)(struct __SPI_HandleTypeDef *hspi);        /*!< SPI Error callback                 */
+  void (* AbortCpltCallback)(struct __SPI_HandleTypeDef *hspi);    /*!< SPI Abort callback                 */
+  void (* SuspendCallback)(struct __SPI_HandleTypeDef *hspi);      /*!< SPI Suspend callback               */
+  void (* MspInitCallback)(struct __SPI_HandleTypeDef *hspi);      /*!< SPI Msp Init callback              */
+  void (* MspDeInitCallback)(struct __SPI_HandleTypeDef *hspi);    /*!< SPI Msp DeInit callback            */
+
+#endif  /* USE_HAL_SPI_REGISTER_CALLBACKS */
+} SPI_HandleTypeDef;
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+/**
+  * @brief  HAL SPI Callback ID enumeration definition
+  */
+typedef enum
+{
+  HAL_SPI_TX_COMPLETE_CB_ID             = 0x00UL,    /*!< SPI Tx Completed callback ID         */
+  HAL_SPI_RX_COMPLETE_CB_ID             = 0x01UL,    /*!< SPI Rx Completed callback ID         */
+  HAL_SPI_TX_RX_COMPLETE_CB_ID          = 0x02UL,    /*!< SPI TxRx Completed callback ID       */
+  HAL_SPI_TX_HALF_COMPLETE_CB_ID        = 0x03UL,    /*!< SPI Tx Half Completed callback ID    */
+  HAL_SPI_RX_HALF_COMPLETE_CB_ID        = 0x04UL,    /*!< SPI Rx Half Completed callback ID    */
+  HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID     = 0x05UL,    /*!< SPI TxRx Half Completed callback ID  */
+  HAL_SPI_ERROR_CB_ID                   = 0x06UL,    /*!< SPI Error callback ID                */
+  HAL_SPI_ABORT_CB_ID                   = 0x07UL,    /*!< SPI Abort callback ID                */
+  HAL_SPI_SUSPEND_CB_ID                 = 0x08UL,    /*!< SPI Suspend callback ID              */
+  HAL_SPI_MSPINIT_CB_ID                 = 0x09UL,    /*!< SPI Msp Init callback ID             */
+  HAL_SPI_MSPDEINIT_CB_ID               = 0x0AUL     /*!< SPI Msp DeInit callback ID           */
+
+} HAL_SPI_CallbackIDTypeDef;
+
+/**
+  * @brief  HAL SPI Callback pointer definition
+  */
+typedef  void (*pSPI_CallbackTypeDef)(SPI_HandleTypeDef *hspi); /*!< pointer to an SPI callback function */
+
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+/**
+  * @}
+  */
+
+/* Exported constants --------------------------------------------------------*/
+
+/** @defgroup SPI_Exported_Constants SPI Exported Constants
+  * @{
+  */
+
+/** @defgroup SPI_FIFO_Type SPI FIFO Type
+  * @{
+  */
+#define SPI_LOWEND_FIFO_SIZE                          8UL
+#define SPI_HIGHEND_FIFO_SIZE                         16UL
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Error_Code SPI Error Codes
+  * @{
+  */
+#define HAL_SPI_ERROR_NONE                            (0x00000000UL)   /*!< No error                               */
+#define HAL_SPI_ERROR_MODF                            (0x00000001UL)   /*!< MODF error                             */
+#define HAL_SPI_ERROR_CRC                             (0x00000002UL)   /*!< CRC error                              */
+#define HAL_SPI_ERROR_OVR                             (0x00000004UL)   /*!< OVR error                              */
+#define HAL_SPI_ERROR_FRE                             (0x00000008UL)   /*!< FRE error                              */
+#define HAL_SPI_ERROR_DMA                             (0x00000010UL)   /*!< DMA transfer error                     */
+#define HAL_SPI_ERROR_FLAG                            (0x00000020UL)   /*!< Error on RXP/TXP/DXP/FTLVL/FRLVL Flag  */
+#define HAL_SPI_ERROR_ABORT                           (0x00000040UL)   /*!< Error during SPI Abort procedure       */
+#define HAL_SPI_ERROR_UDR                             (0x00000080UL)   /*!< Underrun error                         */
+#define HAL_SPI_ERROR_TIMEOUT                         (0x00000100UL)   /*!< Timeout error                          */
+#define HAL_SPI_ERROR_UNKNOW                          (0x00000200UL)   /*!< Unknown error                          */
+#define HAL_SPI_ERROR_NOT_SUPPORTED                   (0x00000400UL)   /*!< Requested operation not supported      */
+#define HAL_SPI_ERROR_RELOAD                          (0x00000800UL)   /*!< Reload error                           */
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+#define HAL_SPI_ERROR_INVALID_CALLBACK                (0x00001000UL)   /*!< Invalid Callback error                 */
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Mode SPI Mode
+  * @{
+  */
+#define SPI_MODE_SLAVE                                (0x00000000UL)
+#define SPI_MODE_MASTER                               SPI_CFG2_MASTER
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Direction SPI Direction Mode
+  * @{
+  */
+#define SPI_DIRECTION_2LINES                          (0x00000000UL)
+#define SPI_DIRECTION_2LINES_TXONLY                   SPI_CFG2_COMM_0
+#define SPI_DIRECTION_2LINES_RXONLY                   SPI_CFG2_COMM_1
+#define SPI_DIRECTION_1LINE                           SPI_CFG2_COMM
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Data_Size SPI Data Size
+  * @{
+  */
+#define SPI_DATASIZE_4BIT                             (0x00000003UL)
+#define SPI_DATASIZE_5BIT                             (0x00000004UL)
+#define SPI_DATASIZE_6BIT                             (0x00000005UL)
+#define SPI_DATASIZE_7BIT                             (0x00000006UL)
+#define SPI_DATASIZE_8BIT                             (0x00000007UL)
+#define SPI_DATASIZE_9BIT                             (0x00000008UL)
+#define SPI_DATASIZE_10BIT                            (0x00000009UL)
+#define SPI_DATASIZE_11BIT                            (0x0000000AUL)
+#define SPI_DATASIZE_12BIT                            (0x0000000BUL)
+#define SPI_DATASIZE_13BIT                            (0x0000000CUL)
+#define SPI_DATASIZE_14BIT                            (0x0000000DUL)
+#define SPI_DATASIZE_15BIT                            (0x0000000EUL)
+#define SPI_DATASIZE_16BIT                            (0x0000000FUL)
+#define SPI_DATASIZE_17BIT                            (0x00000010UL)
+#define SPI_DATASIZE_18BIT                            (0x00000011UL)
+#define SPI_DATASIZE_19BIT                            (0x00000012UL)
+#define SPI_DATASIZE_20BIT                            (0x00000013UL)
+#define SPI_DATASIZE_21BIT                            (0x00000014UL)
+#define SPI_DATASIZE_22BIT                            (0x00000015UL)
+#define SPI_DATASIZE_23BIT                            (0x00000016UL)
+#define SPI_DATASIZE_24BIT                            (0x00000017UL)
+#define SPI_DATASIZE_25BIT                            (0x00000018UL)
+#define SPI_DATASIZE_26BIT                            (0x00000019UL)
+#define SPI_DATASIZE_27BIT                            (0x0000001AUL)
+#define SPI_DATASIZE_28BIT                            (0x0000001BUL)
+#define SPI_DATASIZE_29BIT                            (0x0000001CUL)
+#define SPI_DATASIZE_30BIT                            (0x0000001DUL)
+#define SPI_DATASIZE_31BIT                            (0x0000001EUL)
+#define SPI_DATASIZE_32BIT                            (0x0000001FUL)
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Clock_Polarity SPI Clock Polarity
+  * @{
+  */
+#define SPI_POLARITY_LOW                              (0x00000000UL)
+#define SPI_POLARITY_HIGH                             SPI_CFG2_CPOL
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Clock_Phase SPI Clock Phase
+  * @{
+  */
+#define SPI_PHASE_1EDGE                               (0x00000000UL)
+#define SPI_PHASE_2EDGE                               SPI_CFG2_CPHA
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Slave_Select_Management SPI Slave Select Management
+  * @{
+  */
+#define SPI_NSS_SOFT                                  SPI_CFG2_SSM
+#define SPI_NSS_HARD_INPUT                            (0x00000000UL)
+#define SPI_NSS_HARD_OUTPUT                           SPI_CFG2_SSOE
+/**
+  * @}
+  */
+
+/** @defgroup SPI_NSSP_Mode SPI NSS Pulse Mode
+  * @{
+  */
+#define SPI_NSS_PULSE_DISABLE                         (0x00000000UL)
+#define SPI_NSS_PULSE_ENABLE                          SPI_CFG2_SSOM
+/**
+  * @}
+  */
+
+/** @defgroup SPI_BaudRate_Prescaler SPI BaudRate Prescaler
+  * @{
+  */
+#define SPI_BAUDRATEPRESCALER_2                       (0x00000000UL)
+#define SPI_BAUDRATEPRESCALER_4                       (0x10000000UL)
+#define SPI_BAUDRATEPRESCALER_8                       (0x20000000UL)
+#define SPI_BAUDRATEPRESCALER_16                      (0x30000000UL)
+#define SPI_BAUDRATEPRESCALER_32                      (0x40000000UL)
+#define SPI_BAUDRATEPRESCALER_64                      (0x50000000UL)
+#define SPI_BAUDRATEPRESCALER_128                     (0x60000000UL)
+#define SPI_BAUDRATEPRESCALER_256                     (0x70000000UL)
+/**
+  * @}
+  */
+
+/** @defgroup SPI_MSB_LSB_Transmission SPI MSB LSB Transmission
+  * @{
+  */
+#define SPI_FIRSTBIT_MSB                              (0x00000000UL)
+#define SPI_FIRSTBIT_LSB                              SPI_CFG2_LSBFRST
+/**
+  * @}
+  */
+
+/** @defgroup SPI_TI_Mode SPI TI Mode
+  * @{
+  */
+#define SPI_TIMODE_DISABLE                            (0x00000000UL)
+#define SPI_TIMODE_ENABLE                             SPI_CFG2_SP_0
+/**
+  * @}
+  */
+
+/** @defgroup SPI_CRC_Calculation SPI CRC Calculation
+  * @{
+  */
+#define SPI_CRCCALCULATION_DISABLE                    (0x00000000UL)
+#define SPI_CRCCALCULATION_ENABLE                     SPI_CFG1_CRCEN
+/**
+  * @}
+  */
+
+/** @defgroup SPI_CRC_length SPI CRC Length
+  * @{
+  */
+#define SPI_CRC_LENGTH_DATASIZE                       (0x00000000UL)
+#define SPI_CRC_LENGTH_4BIT                           (0x00030000UL)
+#define SPI_CRC_LENGTH_5BIT                           (0x00040000UL)
+#define SPI_CRC_LENGTH_6BIT                           (0x00050000UL)
+#define SPI_CRC_LENGTH_7BIT                           (0x00060000UL)
+#define SPI_CRC_LENGTH_8BIT                           (0x00070000UL)
+#define SPI_CRC_LENGTH_9BIT                           (0x00080000UL)
+#define SPI_CRC_LENGTH_10BIT                          (0x00090000UL)
+#define SPI_CRC_LENGTH_11BIT                          (0x000A0000UL)
+#define SPI_CRC_LENGTH_12BIT                          (0x000B0000UL)
+#define SPI_CRC_LENGTH_13BIT                          (0x000C0000UL)
+#define SPI_CRC_LENGTH_14BIT                          (0x000D0000UL)
+#define SPI_CRC_LENGTH_15BIT                          (0x000E0000UL)
+#define SPI_CRC_LENGTH_16BIT                          (0x000F0000UL)
+#define SPI_CRC_LENGTH_17BIT                          (0x00100000UL)
+#define SPI_CRC_LENGTH_18BIT                          (0x00110000UL)
+#define SPI_CRC_LENGTH_19BIT                          (0x00120000UL)
+#define SPI_CRC_LENGTH_20BIT                          (0x00130000UL)
+#define SPI_CRC_LENGTH_21BIT                          (0x00140000UL)
+#define SPI_CRC_LENGTH_22BIT                          (0x00150000UL)
+#define SPI_CRC_LENGTH_23BIT                          (0x00160000UL)
+#define SPI_CRC_LENGTH_24BIT                          (0x00170000UL)
+#define SPI_CRC_LENGTH_25BIT                          (0x00180000UL)
+#define SPI_CRC_LENGTH_26BIT                          (0x00190000UL)
+#define SPI_CRC_LENGTH_27BIT                          (0x001A0000UL)
+#define SPI_CRC_LENGTH_28BIT                          (0x001B0000UL)
+#define SPI_CRC_LENGTH_29BIT                          (0x001C0000UL)
+#define SPI_CRC_LENGTH_30BIT                          (0x001D0000UL)
+#define SPI_CRC_LENGTH_31BIT                          (0x001E0000UL)
+#define SPI_CRC_LENGTH_32BIT                          (0x001F0000UL)
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Fifo_Threshold SPI Fifo Threshold
+  * @{
+  */
+#define SPI_FIFO_THRESHOLD_01DATA                     (0x00000000UL)
+#define SPI_FIFO_THRESHOLD_02DATA                     (0x00000020UL)
+#define SPI_FIFO_THRESHOLD_03DATA                     (0x00000040UL)
+#define SPI_FIFO_THRESHOLD_04DATA                     (0x00000060UL)
+#define SPI_FIFO_THRESHOLD_05DATA                     (0x00000080UL)
+#define SPI_FIFO_THRESHOLD_06DATA                     (0x000000A0UL)
+#define SPI_FIFO_THRESHOLD_07DATA                     (0x000000C0UL)
+#define SPI_FIFO_THRESHOLD_08DATA                     (0x000000E0UL)
+#define SPI_FIFO_THRESHOLD_09DATA                     (0x00000100UL)
+#define SPI_FIFO_THRESHOLD_10DATA                     (0x00000120UL)
+#define SPI_FIFO_THRESHOLD_11DATA                     (0x00000140UL)
+#define SPI_FIFO_THRESHOLD_12DATA                     (0x00000160UL)
+#define SPI_FIFO_THRESHOLD_13DATA                     (0x00000180UL)
+#define SPI_FIFO_THRESHOLD_14DATA                     (0x000001A0UL)
+#define SPI_FIFO_THRESHOLD_15DATA                     (0x000001C0UL)
+#define SPI_FIFO_THRESHOLD_16DATA                     (0x000001E0UL)
+/**
+  * @}
+  */
+
+/** @defgroup SPI_CRC_Calculation_Initialization_Pattern SPI CRC Calculation Initialization Pattern
+  * @{
+  */
+#define SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN       (0x00000000UL)
+#define SPI_CRC_INITIALIZATION_ALL_ONE_PATTERN        (0x00000001UL)
+/**
+  * @}
+  */
+
+/** @defgroup SPI_NSS_Polarity SPI NSS Polarity
+  * @{
+  */
+#define SPI_NSS_POLARITY_LOW                          (0x00000000UL)
+#define SPI_NSS_POLARITY_HIGH                          SPI_CFG2_SSIOP
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Master_Keep_IO_State Keep IO State
+  * @{
+  */
+#define SPI_MASTER_KEEP_IO_STATE_DISABLE              (0x00000000UL)
+#define SPI_MASTER_KEEP_IO_STATE_ENABLE               SPI_CFG2_AFCNTR
+/**
+  * @}
+  */
+
+/** @defgroup SPI_IO_Swap Control SPI IO Swap
+  * @{
+  */
+#define SPI_IO_SWAP_DISABLE                           (0x00000000UL)
+#define SPI_IO_SWAP_ENABLE                            SPI_CFG2_IOSWP
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Master_SS_Idleness SPI Master SS Idleness
+  * @{
+  */
+#define SPI_MASTER_SS_IDLENESS_00CYCLE                (0x00000000UL)
+#define SPI_MASTER_SS_IDLENESS_01CYCLE                (0x00000001UL)
+#define SPI_MASTER_SS_IDLENESS_02CYCLE                (0x00000002UL)
+#define SPI_MASTER_SS_IDLENESS_03CYCLE                (0x00000003UL)
+#define SPI_MASTER_SS_IDLENESS_04CYCLE                (0x00000004UL)
+#define SPI_MASTER_SS_IDLENESS_05CYCLE                (0x00000005UL)
+#define SPI_MASTER_SS_IDLENESS_06CYCLE                (0x00000006UL)
+#define SPI_MASTER_SS_IDLENESS_07CYCLE                (0x00000007UL)
+#define SPI_MASTER_SS_IDLENESS_08CYCLE                (0x00000008UL)
+#define SPI_MASTER_SS_IDLENESS_09CYCLE                (0x00000009UL)
+#define SPI_MASTER_SS_IDLENESS_10CYCLE                (0x0000000AUL)
+#define SPI_MASTER_SS_IDLENESS_11CYCLE                (0x0000000BUL)
+#define SPI_MASTER_SS_IDLENESS_12CYCLE                (0x0000000CUL)
+#define SPI_MASTER_SS_IDLENESS_13CYCLE                (0x0000000DUL)
+#define SPI_MASTER_SS_IDLENESS_14CYCLE                (0x0000000EUL)
+#define SPI_MASTER_SS_IDLENESS_15CYCLE                (0x0000000FUL)
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Master_InterData_Idleness SPI Master Inter-Data Idleness
+  * @{
+  */
+#define SPI_MASTER_INTERDATA_IDLENESS_00CYCLE         (0x00000000UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_01CYCLE         (0x00000010UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_02CYCLE         (0x00000020UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_03CYCLE         (0x00000030UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_04CYCLE         (0x00000040UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_05CYCLE         (0x00000050UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_06CYCLE         (0x00000060UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_07CYCLE         (0x00000070UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_08CYCLE         (0x00000080UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_09CYCLE         (0x00000090UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_10CYCLE         (0x000000A0UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_11CYCLE         (0x000000B0UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_12CYCLE         (0x000000C0UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_13CYCLE         (0x000000D0UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_14CYCLE         (0x000000E0UL)
+#define SPI_MASTER_INTERDATA_IDLENESS_15CYCLE         (0x000000F0UL)
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Master_RX_AutoSuspend SPI Master Receiver AutoSuspend
+  * @{
+  */
+#define SPI_MASTER_RX_AUTOSUSP_DISABLE                (0x00000000UL)
+#define SPI_MASTER_RX_AUTOSUSP_ENABLE                 SPI_CR1_MASRX
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Underrun_Behaviour SPI Underrun Behavior
+  * @{
+  */
+#define SPI_UNDERRUN_BEHAV_REGISTER_PATTERN           (0x00000000UL)
+#define SPI_UNDERRUN_BEHAV_LAST_RECEIVED              SPI_CFG1_UDRCFG_0
+#define SPI_UNDERRUN_BEHAV_LAST_TRANSMITTED           SPI_CFG1_UDRCFG_1
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Underrun_Detection SPI Underrun Detection
+  * @{
+  */
+#define SPI_UNDERRUN_DETECT_BEGIN_DATA_FRAME          (0x00000000UL)
+#define SPI_UNDERRUN_DETECT_END_DATA_FRAME            SPI_CFG1_UDRDET_0
+#define SPI_UNDERRUN_DETECT_BEGIN_ACTIVE_NSS          SPI_CFG1_UDRDET_1
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Interrupt_definition SPI Interrupt Definition
+  * @{
+  */
+#define SPI_IT_RXP                      SPI_IER_RXPIE
+#define SPI_IT_TXP                      SPI_IER_TXPIE
+#define SPI_IT_DXP                      SPI_IER_DXPIE
+#define SPI_IT_EOT                      SPI_IER_EOTIE
+#define SPI_IT_TXTF                     SPI_IER_TXTFIE
+#define SPI_IT_UDR                      SPI_IER_UDRIE
+#define SPI_IT_OVR                      SPI_IER_OVRIE
+#define SPI_IT_CRCERR                   SPI_IER_CRCEIE
+#define SPI_IT_FRE                      SPI_IER_TIFREIE
+#define SPI_IT_MODF                     SPI_IER_MODFIE
+#define SPI_IT_TSERF                    SPI_IER_TSERFIE
+#define SPI_IT_ERR                      (SPI_IT_UDR | SPI_IT_OVR | SPI_IT_FRE | SPI_IT_MODF | SPI_IT_CRCERR)
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Flags_definition SPI Flags Definition
+  * @{
+  */
+#define SPI_FLAG_RXP                    SPI_SR_RXP     /* SPI status flag : Rx-Packet available flag                 */
+#define SPI_FLAG_TXP                    SPI_SR_TXP     /* SPI status flag : Tx-Packet space available flag           */
+#define SPI_FLAG_DXP                    SPI_SR_DXP     /* SPI status flag : Duplex Packet flag                       */
+#define SPI_FLAG_EOT                    SPI_SR_EOT     /* SPI status flag : End of transfer flag                     */
+#define SPI_FLAG_TXTF                   SPI_SR_TXTF    /* SPI status flag : Transmission Transfer Filled flag        */
+#define SPI_FLAG_UDR                    SPI_SR_UDR     /* SPI Error flag  : Underrun flag                            */
+#define SPI_FLAG_OVR                    SPI_SR_OVR     /* SPI Error flag  : Overrun flag                             */
+#define SPI_FLAG_CRCERR                 SPI_SR_CRCE    /* SPI Error flag  : CRC error flag                           */
+#define SPI_FLAG_FRE                    SPI_SR_TIFRE   /* SPI Error flag  : TI mode frame format error flag          */
+#define SPI_FLAG_MODF                   SPI_SR_MODF    /* SPI Error flag  : Mode fault flag                          */
+#define SPI_FLAG_TSERF                  SPI_SR_TSERF   /* SPI status flag : Additional number of data reloaded flag  */
+#define SPI_FLAG_SUSP                   SPI_SR_SUSP    /* SPI status flag : Transfer suspend complete flag           */
+#define SPI_FLAG_TXC                    SPI_SR_TXC     /* SPI status flag : TxFIFO transmission complete flag        */
+#define SPI_FLAG_FRLVL                  SPI_SR_RXPLVL  /* SPI status flag : Fifo reception level flag                */
+#define SPI_FLAG_RXWNE                  SPI_SR_RXWNE   /* SPI status flag : RxFIFO word not empty flag               */
+/**
+  * @}
+  */
+
+/** @defgroup SPI_reception_fifo_status_level SPI Reception FIFO Status Level
+  * @{
+  */
+#define SPI_RX_FIFO_0PACKET             (0x00000000UL)         /* 0 or multiple of 4 packets available in the RxFIFO */
+#define SPI_RX_FIFO_1PACKET             (SPI_SR_RXPLVL_0)
+#define SPI_RX_FIFO_2PACKET             (SPI_SR_RXPLVL_1)
+#define SPI_RX_FIFO_3PACKET             (SPI_SR_RXPLVL_1 | SPI_SR_RXPLVL_0)
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Exported macros -----------------------------------------------------------*/
+/** @defgroup SPI_Exported_Macros SPI Exported Macros
+  * @{
+  */
+
+/** @brief  Reset SPI handle state.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
+  * @retval None
+  */
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+#define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__)   do{                                                  \
+                                                       (__HANDLE__)->State = HAL_SPI_STATE_RESET;       \
+                                                       (__HANDLE__)->MspInitCallback = NULL;            \
+                                                       (__HANDLE__)->MspDeInitCallback = NULL;          \
+                                                     } while(0)
+#else
+#define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SPI_STATE_RESET)
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+
+/** @brief  Enable the specified SPI interrupts.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
+  * @param  __INTERRUPT__: specifies the interrupt source to enable or disable.
+  *         This parameter can be one of the following values:
+  *            @arg SPI_IT_RXP    : Rx-Packet available interrupt
+  *            @arg SPI_IT_TXP    : Tx-Packet space available interrupt
+  *            @arg SPI_IT_DXP    : Duplex Packet interrupt
+  *            @arg SPI_IT_EOT    : End of transfer interrupt
+  *            @arg SPI_IT_TXTF   : Transmission Transfer Filled interrupt
+  *            @arg SPI_IT_UDR    : Underrun interrupt
+  *            @arg SPI_IT_OVR    : Overrun  interrupt
+  *            @arg SPI_IT_CRCERR : CRC error interrupt
+  *            @arg SPI_IT_FRE    : TI mode frame format error interrupt
+  *            @arg SPI_IT_MODF   : Mode fault interrupt
+  *            @arg SPI_IT_TSERF  : Additional number of data reloaded interrupt
+  *            @arg SPI_IT_ERR    : Error interrupt
+  * @retval None
+  */
+#define __HAL_SPI_ENABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->IER |= (__INTERRUPT__))
+
+/** @brief  Disable the specified SPI interrupts.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
+  * @param  __INTERRUPT__: specifies the interrupt source to enable or disable.
+  *         This parameter can be one of the following values:
+  *            @arg SPI_IT_RXP    : Rx-Packet available interrupt
+  *            @arg SPI_IT_TXP    : Tx-Packet space available interrupt
+  *            @arg SPI_IT_DXP    : Duplex Packet interrupt
+  *            @arg SPI_IT_EOT    : End of transfer interrupt
+  *            @arg SPI_IT_TXTF   : Transmission Transfer Filled interrupt
+  *            @arg SPI_IT_UDR    : Underrun interrupt
+  *            @arg SPI_IT_OVR    : Overrun  interrupt
+  *            @arg SPI_IT_CRCERR : CRC error interrupt
+  *            @arg SPI_IT_FRE    : TI mode frame format error interrupt
+  *            @arg SPI_IT_MODF   : Mode fault interrupt
+  *            @arg SPI_IT_TSERF  : Additional number of data reloaded interrupt
+  *            @arg SPI_IT_ERR    : Error interrupt
+  * @retval None
+  */
+#define __HAL_SPI_DISABLE_IT(__HANDLE__, __INTERRUPT__)  ((__HANDLE__)->Instance->IER &= (~(__INTERRUPT__)))
+
+/** @brief  Check whether the specified SPI interrupt source is enabled or not.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
+  * @param  __INTERRUPT__: specifies the SPI interrupt source to check.
+  *          This parameter can be one of the following values:
+  *            @arg SPI_IT_RXP    : Rx-Packet available interrupt
+  *            @arg SPI_IT_TXP    : Tx-Packet space available interrupt
+  *            @arg SPI_IT_DXP    : Duplex Packet interrupt
+  *            @arg SPI_IT_EOT    : End of transfer interrupt
+  *            @arg SPI_IT_TXTF   : Transmission Transfer Filled interrupt
+  *            @arg SPI_IT_UDR    : Underrun interrupt
+  *            @arg SPI_IT_OVR    : Overrun  interrupt
+  *            @arg SPI_IT_CRCERR : CRC error interrupt
+  *            @arg SPI_IT_FRE    : TI mode frame format error interrupt
+  *            @arg SPI_IT_MODF   : Mode fault interrupt
+  *            @arg SPI_IT_TSERF  : Additional number of data reloaded interrupt
+  *            @arg SPI_IT_ERR    : Error interrupt
+  * @retval The new state of __IT__ (TRUE or FALSE).
+  */
+#define __HAL_SPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IER & \
+                                                              (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
+
+/** @brief  Check whether the specified SPI flag is set or not.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
+  * @param  __FLAG__: specifies the flag to check.
+  *         This parameter can be one of the following values:
+  *            @arg SPI_FLAG_RXP    : Rx-Packet available flag
+  *            @arg SPI_FLAG_TXP    : Tx-Packet space available flag
+  *            @arg SPI_FLAG_DXP    : Duplex Packet flag
+  *            @arg SPI_FLAG_EOT    : End of transfer flag
+  *            @arg SPI_FLAG_TXTF   : Transmission Transfer Filled flag
+  *            @arg SPI_FLAG_UDR    : Underrun flag
+  *            @arg SPI_FLAG_OVR    : Overrun flag
+  *            @arg SPI_FLAG_CRCERR : CRC error flag
+  *            @arg SPI_FLAG_FRE    : TI mode frame format error flag
+  *            @arg SPI_FLAG_MODF   : Mode fault flag
+  *            @arg SPI_FLAG_TSERF  : Additional number of data reloaded flag
+  *            @arg SPI_FLAG_SUSP   : Transfer suspend complete flag
+  *            @arg SPI_FLAG_TXC    : TxFIFO transmission complete flag
+  *            @arg SPI_FLAG_FRLVL  : Fifo reception level flag
+  *            @arg SPI_FLAG_RXWNE  : RxFIFO word not empty flag
+  * @retval The new state of __FLAG__ (TRUE or FALSE).
+  */
+#define __HAL_SPI_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
+
+/** @brief  Clear the SPI CRCERR pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_CRCERRFLAG(__HANDLE__) SET_BIT((__HANDLE__)->Instance->IFCR , SPI_IFCR_CRCEC)
+
+/** @brief  Clear the SPI MODF pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_MODFFLAG(__HANDLE__)  SET_BIT((__HANDLE__)->Instance->IFCR , (uint32_t)(SPI_IFCR_MODFC));
+
+/** @brief  Clear the SPI OVR pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_OVRFLAG(__HANDLE__) SET_BIT((__HANDLE__)->Instance->IFCR , SPI_IFCR_OVRC)
+
+/** @brief  Clear the SPI FRE pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_FREFLAG(__HANDLE__) SET_BIT((__HANDLE__)->Instance->IFCR , SPI_IFCR_TIFREC)
+
+/** @brief  Clear the SPI UDR pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_UDRFLAG(__HANDLE__) SET_BIT((__HANDLE__)->Instance->IFCR , SPI_IFCR_UDRC)
+
+/** @brief  Clear the SPI EOT pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_EOTFLAG(__HANDLE__) SET_BIT((__HANDLE__)->Instance->IFCR , SPI_IFCR_EOTC)
+
+/** @brief  Clear the SPI UDR pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_TXTFFLAG(__HANDLE__) SET_BIT((__HANDLE__)->Instance->IFCR , SPI_IFCR_TXTFC)
+
+/** @brief  Clear the SPI SUSP pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_SUSPFLAG(__HANDLE__) SET_BIT((__HANDLE__)->Instance->IFCR , SPI_IFCR_SUSPC)
+
+/** @brief  Clear the SPI TSERF pending flag.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_CLEAR_TSERFFLAG(__HANDLE__) SET_BIT((__HANDLE__)->Instance->IFCR , SPI_IFCR_TSERFC)
+
+/** @brief  Enable the SPI peripheral.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR1 , SPI_CR1_SPE)
+
+/** @brief  Disable the SPI peripheral.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  * @retval None
+  */
+#define __HAL_SPI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR1 , SPI_CR1_SPE)
+/**
+  * @}
+  */
+
+
+/* Include SPI HAL Extension module */
+#include "stm32h7xx_hal_spi_ex.h"
+
+
+/* Exported functions --------------------------------------------------------*/
+/** @addtogroup SPI_Exported_Functions
+  * @{
+  */
+
+/** @addtogroup SPI_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @{
+  */
+/* Initialization/de-initialization functions  ********************************/
+HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi);
+HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi);
+void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi);
+void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi);
+
+/* 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_UnRegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+/**
+  * @}
+  */
+
+/** @addtogroup SPI_Exported_Functions_Group2 IO operation functions
+  * @{
+  */
+/* I/O operation functions  ***************************************************/
+HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
+HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
+HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
+                                          uint16_t Size, uint32_t Timeout);
+HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
+                                             uint16_t Size);
+
+HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
+                                              uint16_t Size);
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+HAL_StatusTypeDef HAL_SPI_Reload_Transmit_IT(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_SPI_Reload_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_SPI_Reload_TransmitReceive_IT(SPI_HandleTypeDef *hspi, const uint8_t *pTxData,
+                                                    uint8_t *pRxData, uint16_t Size);
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);
+HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);
+HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);
+
+/* Transfer Abort functions */
+HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi);
+HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi);
+
+void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi);
+void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
+void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi);
+void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi);
+void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);
+void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);
+void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);
+void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
+void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi);
+void HAL_SPI_SuspendCallback(SPI_HandleTypeDef *hspi);
+/**
+  * @}
+  */
+
+/** @addtogroup SPI_Exported_Functions_Group3 Peripheral State and Errors functions
+  * @{
+  */
+
+/* Peripheral State and Error functions ***************************************/
+HAL_SPI_StateTypeDef HAL_SPI_GetState(const SPI_HandleTypeDef *hspi);
+uint32_t             HAL_SPI_GetError(const SPI_HandleTypeDef *hspi);
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Private macros ------------------------------------------------------------*/
+/** @defgroup SPI_Private_Macros SPI Private Macros
+  * @{
+  */
+
+/** @brief  Set the SPI transmit-only mode in 1Line configuration.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
+  * @retval None
+  */
+#define SPI_1LINE_TX(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_HDDIR)
+
+/** @brief  Set the SPI receive-only mode in 1Line configuration.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
+  * @retval None
+  */
+#define SPI_1LINE_RX(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_HDDIR)
+
+/** @brief  Set the SPI transmit-only mode in 2Lines configuration.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
+  * @retval None
+  */
+#define SPI_2LINES_TX(__HANDLE__) MODIFY_REG((__HANDLE__)->Instance->CFG2, SPI_CFG2_COMM, SPI_CFG2_COMM_0)
+
+/** @brief  Set the SPI receive-only mode in 2Lines configuration.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
+  * @retval None
+  */
+#define SPI_2LINES_RX(__HANDLE__) MODIFY_REG((__HANDLE__)->Instance->CFG2, SPI_CFG2_COMM, SPI_CFG2_COMM_1)
+
+/** @brief  Set the SPI Transmit-Receive mode in 2Lines configuration.
+  * @param  __HANDLE__: specifies the SPI Handle.
+  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
+  * @retval None
+  */
+#define SPI_2LINES(__HANDLE__) MODIFY_REG((__HANDLE__)->Instance->CFG2, SPI_CFG2_COMM, 0x00000000UL)
+
+#define IS_SPI_MODE(MODE)                          (((MODE) == SPI_MODE_SLAVE) || \
+                                                    ((MODE) == SPI_MODE_MASTER))
+
+#define IS_SPI_DIRECTION(MODE)                     (((MODE) == SPI_DIRECTION_2LINES)        || \
+                                                    ((MODE) == SPI_DIRECTION_2LINES_RXONLY) || \
+                                                    ((MODE) == SPI_DIRECTION_1LINE)         || \
+                                                    ((MODE) == SPI_DIRECTION_2LINES_TXONLY))
+
+#define IS_SPI_DIRECTION_2LINES(MODE) ((MODE) == SPI_DIRECTION_2LINES)
+
+#define IS_SPI_DIRECTION_2LINES_OR_1LINE_2LINES_TXONLY(MODE) (((MODE) == SPI_DIRECTION_2LINES)|| \
+                                                              ((MODE) == SPI_DIRECTION_1LINE) || \
+                                                              ((MODE) == SPI_DIRECTION_2LINES_TXONLY))
+
+#define IS_SPI_DIRECTION_2LINES_OR_1LINE_2LINES_RXONLY(MODE) (((MODE) == SPI_DIRECTION_2LINES)|| \
+                                                              ((MODE) == SPI_DIRECTION_1LINE) || \
+                                                              ((MODE) == SPI_DIRECTION_2LINES_RXONLY))
+
+#define IS_SPI_DATASIZE(DATASIZE)                  (((DATASIZE) == SPI_DATASIZE_32BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_31BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_30BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_29BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_28BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_27BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_26BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_25BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_24BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_23BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_22BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_21BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_20BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_22BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_19BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_18BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_17BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_16BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_15BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_14BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_13BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_12BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_11BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_10BIT) || \
+                                                    ((DATASIZE) == SPI_DATASIZE_9BIT)  || \
+                                                    ((DATASIZE) == SPI_DATASIZE_8BIT)  || \
+                                                    ((DATASIZE) == SPI_DATASIZE_7BIT)  || \
+                                                    ((DATASIZE) == SPI_DATASIZE_6BIT)  || \
+                                                    ((DATASIZE) == SPI_DATASIZE_5BIT)  || \
+                                                    ((DATASIZE) == SPI_DATASIZE_4BIT))
+
+#define IS_SPI_FIFOTHRESHOLD(THRESHOLD)            (((THRESHOLD) == SPI_FIFO_THRESHOLD_01DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_02DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_03DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_04DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_05DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_06DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_07DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_08DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_09DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_10DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_11DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_12DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_13DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_14DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_15DATA) || \
+                                                    ((THRESHOLD) == SPI_FIFO_THRESHOLD_16DATA))
+
+#define IS_SPI_CPOL(CPOL)                          (((CPOL) == SPI_POLARITY_LOW) || \
+                                                    ((CPOL) == SPI_POLARITY_HIGH))
+
+#define IS_SPI_CPHA(CPHA)                          (((CPHA) == SPI_PHASE_1EDGE) || \
+                                                    ((CPHA) == SPI_PHASE_2EDGE))
+
+#define IS_SPI_NSS(NSS)                            (((NSS) == SPI_NSS_SOFT)       || \
+                                                    ((NSS) == SPI_NSS_HARD_INPUT) || \
+                                                    ((NSS) == SPI_NSS_HARD_OUTPUT))
+
+#define IS_SPI_NSSP(NSSP)                          (((NSSP) == SPI_NSS_PULSE_ENABLE) || \
+                                                    ((NSSP) == SPI_NSS_PULSE_DISABLE))
+
+#define IS_SPI_BAUDRATE_PRESCALER(PRESCALER)       (((PRESCALER) == SPI_BAUDRATEPRESCALER_2)      || \
+                                                    ((PRESCALER) == SPI_BAUDRATEPRESCALER_4)      || \
+                                                    ((PRESCALER) == SPI_BAUDRATEPRESCALER_8)      || \
+                                                    ((PRESCALER) == SPI_BAUDRATEPRESCALER_16)     || \
+                                                    ((PRESCALER) == SPI_BAUDRATEPRESCALER_32)     || \
+                                                    ((PRESCALER) == SPI_BAUDRATEPRESCALER_64)     || \
+                                                    ((PRESCALER) == SPI_BAUDRATEPRESCALER_128)    || \
+                                                    ((PRESCALER) == SPI_BAUDRATEPRESCALER_256))
+
+#define IS_SPI_FIRST_BIT(BIT)                      (((BIT) == SPI_FIRSTBIT_MSB) || \
+                                                    ((BIT) == SPI_FIRSTBIT_LSB))
+
+#define IS_SPI_TIMODE(MODE)                        (((MODE) == SPI_TIMODE_DISABLE) || \
+                                                    ((MODE) == SPI_TIMODE_ENABLE))
+
+#define IS_SPI_CRC_CALCULATION(CALCULATION)        (((CALCULATION) == SPI_CRCCALCULATION_DISABLE) || \
+                                                    ((CALCULATION) == SPI_CRCCALCULATION_ENABLE))
+
+#define IS_SPI_CRC_INITIALIZATION_PATTERN(PATTERN) (((PATTERN) == SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN) || \
+                                                    ((PATTERN) == SPI_CRC_INITIALIZATION_ALL_ONE_PATTERN))
+
+#define IS_SPI_CRC_LENGTH(LENGTH)                  (((LENGTH) == SPI_CRC_LENGTH_DATASIZE) || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_32BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_31BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_30BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_29BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_28BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_27BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_26BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_25BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_24BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_23BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_22BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_21BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_20BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_19BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_18BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_17BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_16BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_15BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_14BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_13BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_12BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_11BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_10BIT)    || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_9BIT)     || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_8BIT)     || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_7BIT)     || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_6BIT)     || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_5BIT)     || \
+                                                    ((LENGTH) == SPI_CRC_LENGTH_4BIT))
+
+
+#define IS_SPI_CRC_POLYNOMIAL(POLYNOMIAL)          ((POLYNOMIAL) > 0x0UL)
+
+#define IS_SPI_CRC_POLYNOMIAL_SIZE(POLYNOM, LENGTH) (((POLYNOM) >> (((LENGTH) >> SPI_CFG1_CRCSIZE_Pos) + 1UL)) == 0UL)
+
+
+#define IS_SPI_UNDERRUN_DETECTION(MODE)            (((MODE) == SPI_UNDERRUN_DETECT_BEGIN_DATA_FRAME) || \
+                                                    ((MODE) == SPI_UNDERRUN_DETECT_END_DATA_FRAME)   || \
+                                                    ((MODE) == SPI_UNDERRUN_DETECT_BEGIN_ACTIVE_NSS))
+
+#define IS_SPI_UNDERRUN_BEHAVIOUR(MODE)            (((MODE) == SPI_UNDERRUN_BEHAV_REGISTER_PATTERN) || \
+                                                    ((MODE) == SPI_UNDERRUN_BEHAV_LAST_RECEIVED)    || \
+                                                    ((MODE) == SPI_UNDERRUN_BEHAV_LAST_TRANSMITTED))
+
+#define IS_SPI_MASTER_RX_AUTOSUSP(MODE)            (((MODE) == SPI_MASTER_RX_AUTOSUSP_DISABLE) || \
+                                                    ((MODE) == SPI_MASTER_RX_AUTOSUSP_ENABLE))
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STM32H7xx_HAL_SPI_H */
+
+/**
+  * @}
+  */
Index: /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c
===================================================================
--- /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c	(revision 45)
+++ /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c	(revision 45)
@@ -0,0 +1,2062 @@
+/**
+  ******************************************************************************
+  * @file    stm32h7xx_hal_dma.c
+  * @author  MCD Application Team
+  * @brief   DMA HAL module driver.
+  *          This file provides firmware functions to manage the following
+  *          functionalities of the Direct Memory Access (DMA) peripheral:
+  *           + Initialization and de-initialization functions
+  *           + IO operation 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 #####
+  ==============================================================================
+  [..]
+   (#) Enable and configure the peripheral to be connected to the DMA Stream
+       (except for internal SRAM/FLASH memories: no initialization is
+       necessary) please refer to Reference manual for connection between peripherals
+       and DMA requests .
+
+   (#) For a given Stream, program the required configuration through the following parameters:
+       Transfer Direction, Source and Destination data formats,
+       Circular, Normal or peripheral flow control mode, Stream Priority level,
+       Source and Destination Increment mode, FIFO mode and its Threshold (if needed),
+       Burst mode for Source and/or Destination (if needed) using HAL_DMA_Init() function.
+
+     *** Polling mode IO operation ***
+     =================================
+    [..]
+          (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source
+              address and destination address and the Length of data to be transferred
+          (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this
+              case a fixed Timeout can be configured by User depending from his application.
+
+     *** Interrupt mode IO operation ***
+     ===================================
+    [..]
+          (+) Configure the DMA interrupt priority using HAL_NVIC_SetPriority()
+          (+) Enable the DMA IRQ handler using HAL_NVIC_EnableIRQ()
+          (+) Use HAL_DMA_Start_IT() to start DMA transfer after the configuration of
+              Source address and destination address and the Length of data to be transferred. In this
+              case the DMA interrupt is configured
+          (+) Use HAL_DMA_IRQHandler() called under DMA_IRQHandler() Interrupt subroutine
+          (+) At the end of data transfer HAL_DMA_IRQHandler() function is executed and user can
+              add his own function by customization of function pointer XferCpltCallback and
+              XferErrorCallback (i.e a member of DMA handle structure).
+    [..]
+     (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of error
+         detection.
+
+     (#) Use HAL_DMA_Abort() function to abort the current transfer
+
+     -@-   In Memory-to-Memory transfer mode, Circular mode is not allowed.
+
+     -@-   The FIFO is used mainly to reduce bus usage and to allow data packing/unpacking: it is
+           possible to set different Data Sizes for the Peripheral and the Memory (ie. you can set
+           Half-Word data size for the peripheral to access its data register and set Word data size
+           for the Memory to gain in access time. Each two half words will be packed and written in
+           a single access to a Word in the Memory).
+
+     -@-   When FIFO is disabled, it is not allowed to configure different Data Sizes for Source
+           and Destination. In this case the Peripheral Data Size will be applied to both Source
+           and Destination.
+
+     *** DMA HAL driver macros list ***
+     =============================================
+     [..]
+       Below the list of most used macros in DMA HAL driver.
+
+      (+) __HAL_DMA_ENABLE: Enable the specified DMA Stream.
+      (+) __HAL_DMA_DISABLE: Disable the specified DMA Stream.
+      (+) __HAL_DMA_GET_FS: Return the current DMA Stream FIFO filled level.
+      (+) __HAL_DMA_ENABLE_IT: Enable the specified DMA Stream interrupts.
+      (+) __HAL_DMA_DISABLE_IT: Disable the specified DMA Stream interrupts.
+      (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Stream interrupt has occurred or not.
+
+     [..]
+      (@) You can refer to the DMA HAL driver header file for more useful macros.
+
+  @endverbatim
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32h7xx_hal.h"
+
+/** @addtogroup STM32H7xx_HAL_Driver
+  * @{
+  */
+
+/** @defgroup DMA DMA
+  * @brief DMA HAL module driver
+  * @{
+  */
+
+#ifdef HAL_DMA_MODULE_ENABLED
+
+/* Private types -------------------------------------------------------------*/
+/** @addtogroup DMA_Private_Types
+  * @{
+  */
+typedef struct
+{
+  __IO uint32_t ISR;   /*!< DMA interrupt status register */
+  __IO uint32_t Reserved0;
+  __IO uint32_t IFCR;  /*!< DMA interrupt flag clear register */
+} DMA_Base_Registers;
+
+typedef struct
+{
+  __IO uint32_t ISR;   /*!< BDMA interrupt status register */
+  __IO uint32_t IFCR;  /*!< BDMA interrupt flag clear register */
+} BDMA_Base_Registers;
+/**
+  * @}
+  */
+
+/* Private variables ---------------------------------------------------------*/
+/* Private constants ---------------------------------------------------------*/
+/** @addtogroup DMA_Private_Constants
+ * @{
+ */
+#define HAL_TIMEOUT_DMA_ABORT         (5U)  /* 5 ms */
+
+#define BDMA_PERIPH_TO_MEMORY         (0x00000000U)                /*!< Peripheral to memory direction */
+#define BDMA_MEMORY_TO_PERIPH         ((uint32_t)BDMA_CCR_DIR)     /*!< Memory to peripheral direction */
+#define BDMA_MEMORY_TO_MEMORY         ((uint32_t)BDMA_CCR_MEM2MEM) /*!< Memory to memory direction     */
+
+/* DMA to BDMA conversion */
+#define DMA_TO_BDMA_DIRECTION(__DMA_DIRECTION__) (((__DMA_DIRECTION__) == DMA_MEMORY_TO_PERIPH)? BDMA_MEMORY_TO_PERIPH: \
+                                                  ((__DMA_DIRECTION__) == DMA_MEMORY_TO_MEMORY)? BDMA_MEMORY_TO_MEMORY: \
+                                                  BDMA_PERIPH_TO_MEMORY)
+
+#define DMA_TO_BDMA_PERIPHERAL_INC(__DMA_PERIPHERAL_INC__) ((__DMA_PERIPHERAL_INC__) >> 3U)
+#define DMA_TO_BDMA_MEMORY_INC(__DMA_MEMORY_INC__) ((__DMA_MEMORY_INC__) >> 3U)
+
+#define DMA_TO_BDMA_PDATA_SIZE(__DMA_PDATA_SIZE__) ((__DMA_PDATA_SIZE__) >> 3U)
+#define DMA_TO_BDMA_MDATA_SIZE(__DMA_MDATA_SIZE__) ((__DMA_MDATA_SIZE__) >> 3U)
+
+#define DMA_TO_BDMA_MODE(__DMA_MODE__) ((__DMA_MODE__) >> 3U)
+
+#define DMA_TO_BDMA_PRIORITY(__DMA_PRIORITY__) ((__DMA_PRIORITY__) >> 4U)
+
+#if defined(UART9)
+#define IS_DMA_UART_USART_REQUEST(__REQUEST__) ((((__REQUEST__) >= DMA_REQUEST_USART1_RX)  &&  ((__REQUEST__) <= DMA_REQUEST_USART3_TX)) || \
+                                                 (((__REQUEST__) >= DMA_REQUEST_UART4_RX)  &&  ((__REQUEST__) <= DMA_REQUEST_UART5_TX )) || \
+                                                 (((__REQUEST__) >= DMA_REQUEST_USART6_RX) &&  ((__REQUEST__) <= DMA_REQUEST_USART6_TX)) || \
+                                                 (((__REQUEST__) >= DMA_REQUEST_UART7_RX)  &&  ((__REQUEST__) <= DMA_REQUEST_UART8_TX )) || \
+                                                 (((__REQUEST__) >= DMA_REQUEST_UART9_RX)  &&  ((__REQUEST__) <= DMA_REQUEST_USART10_TX )))
+#else
+#define IS_DMA_UART_USART_REQUEST(__REQUEST__) ((((__REQUEST__) >= DMA_REQUEST_USART1_RX)  &&  ((__REQUEST__) <= DMA_REQUEST_USART3_TX)) || \
+                                                 (((__REQUEST__) >= DMA_REQUEST_UART4_RX)  &&  ((__REQUEST__) <= DMA_REQUEST_UART5_TX )) || \
+                                                 (((__REQUEST__) >= DMA_REQUEST_USART6_RX) &&  ((__REQUEST__) <= DMA_REQUEST_USART6_TX)) || \
+                                                 (((__REQUEST__) >= DMA_REQUEST_UART7_RX)  &&  ((__REQUEST__) <= DMA_REQUEST_UART8_TX )))
+
+#endif
+/**
+  * @}
+  */
+/* Private macros ------------------------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+/** @addtogroup DMA_Private_Functions
+  * @{
+  */
+static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
+static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma);
+static HAL_StatusTypeDef DMA_CheckFifoParam(const DMA_HandleTypeDef *hdma);
+static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma);
+static void DMA_CalcDMAMUXRequestGenBaseAndMask(DMA_HandleTypeDef *hdma);
+
+/**
+  * @}
+  */
+
+/* Exported functions ---------------------------------------------------------*/
+/** @addtogroup DMA_Exported_Functions
+  * @{
+  */
+
+/** @addtogroup DMA_Exported_Functions_Group1
+  *
+@verbatim
+ ===============================================================================
+             ##### Initialization and de-initialization functions  #####
+ ===============================================================================
+    [..]
+    This section provides functions allowing to initialize the DMA Stream source
+    and destination incrementation and data sizes, transfer direction,
+    circular/normal mode selection, memory-to-memory mode selection and Stream priority value.
+    [..]
+    The HAL_DMA_Init() function follows the DMA configuration procedures as described in
+    reference manual.
+    The HAL_DMA_DeInit function allows to deinitialize the DMA stream.
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Initialize the DMA according to the specified
+  *         parameters in the DMA_InitTypeDef and create the associated handle.
+  * @param  hdma: Pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA Stream.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma)
+{
+  uint32_t registerValue;
+  uint32_t tickstart = HAL_GetTick();
+  DMA_Base_Registers *regs_dma;
+  BDMA_Base_Registers *regs_bdma;
+
+  /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Check the parameters */
+  assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance));
+  assert_param(IS_DMA_DIRECTION(hdma->Init.Direction));
+  assert_param(IS_DMA_PERIPHERAL_INC_STATE(hdma->Init.PeriphInc));
+  assert_param(IS_DMA_MEMORY_INC_STATE(hdma->Init.MemInc));
+  assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(hdma->Init.PeriphDataAlignment));
+  assert_param(IS_DMA_MEMORY_DATA_SIZE(hdma->Init.MemDataAlignment));
+  assert_param(IS_DMA_MODE(hdma->Init.Mode));
+  assert_param(IS_DMA_PRIORITY(hdma->Init.Priority));
+
+  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+  {
+    assert_param(IS_DMA_REQUEST(hdma->Init.Request));
+    assert_param(IS_DMA_FIFO_MODE_STATE(hdma->Init.FIFOMode));
+    /* Check the memory burst, peripheral burst and FIFO threshold parameters only
+       when FIFO mode is enabled */
+    if(hdma->Init.FIFOMode != DMA_FIFOMODE_DISABLE)
+    {
+      assert_param(IS_DMA_FIFO_THRESHOLD(hdma->Init.FIFOThreshold));
+      assert_param(IS_DMA_MEMORY_BURST(hdma->Init.MemBurst));
+      assert_param(IS_DMA_PERIPHERAL_BURST(hdma->Init.PeriphBurst));
+    }
+
+    /* Change DMA peripheral state */
+    hdma->State = HAL_DMA_STATE_BUSY;
+
+    /* Allocate lock resource */
+    __HAL_UNLOCK(hdma);
+
+    /* Disable the peripheral */
+    __HAL_DMA_DISABLE(hdma);
+
+    /* Check if the DMA Stream is effectively disabled */
+    while((((DMA_Stream_TypeDef   *)hdma->Instance)->CR & DMA_SxCR_EN) != 0U)
+    {
+      /* Check for the Timeout */
+      if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT)
+      {
+        /* Update error code */
+        hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
+
+        /* Change the DMA state */
+        hdma->State = HAL_DMA_STATE_ERROR;
+
+        return HAL_ERROR;
+      }
+    }
+
+    /* Get the CR register value */
+    registerValue = ((DMA_Stream_TypeDef   *)hdma->Instance)->CR;
+
+    /* Clear CHSEL, MBURST, PBURST, PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR, CT and DBM bits */
+    registerValue &= ((uint32_t)~(DMA_SxCR_MBURST | DMA_SxCR_PBURST | \
+                        DMA_SxCR_PL    | DMA_SxCR_MSIZE  | DMA_SxCR_PSIZE  | \
+                        DMA_SxCR_MINC  | DMA_SxCR_PINC   | DMA_SxCR_CIRC   | \
+                        DMA_SxCR_DIR   | DMA_SxCR_CT     | DMA_SxCR_DBM));
+
+    /* Prepare the DMA Stream configuration */
+    registerValue |=  hdma->Init.Direction           |
+            hdma->Init.PeriphInc           | hdma->Init.MemInc           |
+            hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment |
+            hdma->Init.Mode                | hdma->Init.Priority;
+
+    /* the Memory burst and peripheral burst are not used when the FIFO is disabled */
+    if(hdma->Init.FIFOMode == DMA_FIFOMODE_ENABLE)
+    {
+      /* Get memory burst and peripheral burst */
+      registerValue |=  hdma->Init.MemBurst | hdma->Init.PeriphBurst;
+    }
+
+    /* Work around for Errata 2.22: UART/USART- DMA transfer lock: DMA stream could be
+                                    lock when transferring data to/from USART/UART */
+#if (STM32H7_DEV_ID == 0x450UL)
+    if((DBGMCU->IDCODE & 0xFFFF0000U) >= 0x20000000U)
+    {
+#endif /* STM32H7_DEV_ID == 0x450UL */
+      if(IS_DMA_UART_USART_REQUEST(hdma->Init.Request) != 0U)
+      {
+        registerValue |= DMA_SxCR_TRBUFF;
+      }
+#if (STM32H7_DEV_ID == 0x450UL)
+    }
+#endif /* STM32H7_DEV_ID == 0x450UL */
+
+    /* Write to DMA Stream CR register */
+    ((DMA_Stream_TypeDef   *)hdma->Instance)->CR = registerValue;
+
+    /* Get the FCR register value */
+    registerValue = ((DMA_Stream_TypeDef   *)hdma->Instance)->FCR;
+
+    /* Clear Direct mode and FIFO threshold bits */
+    registerValue &= (uint32_t)~(DMA_SxFCR_DMDIS | DMA_SxFCR_FTH);
+
+    /* Prepare the DMA Stream FIFO configuration */
+    registerValue |= hdma->Init.FIFOMode;
+
+    /* the FIFO threshold is not used when the FIFO mode is disabled */
+    if(hdma->Init.FIFOMode == DMA_FIFOMODE_ENABLE)
+    {
+      /* Get the FIFO threshold */
+      registerValue |= hdma->Init.FIFOThreshold;
+
+      /* Check compatibility between FIFO threshold level and size of the memory burst */
+      /* for INCR4, INCR8, INCR16 */
+      if(hdma->Init.MemBurst != DMA_MBURST_SINGLE)
+      {
+        if (DMA_CheckFifoParam(hdma) != HAL_OK)
+        {
+          /* Update error code */
+          hdma->ErrorCode = HAL_DMA_ERROR_PARAM;
+
+          /* Change the DMA state */
+          hdma->State = HAL_DMA_STATE_READY;
+
+          return HAL_ERROR;
+        }
+      }
+    }
+
+    /* Write to DMA Stream FCR */
+    ((DMA_Stream_TypeDef   *)hdma->Instance)->FCR = registerValue;
+
+    /* Initialize StreamBaseAddress and StreamIndex parameters to be used to calculate
+       DMA steam Base Address needed by HAL_DMA_IRQHandler() and HAL_DMA_PollForTransfer() */
+    regs_dma = (DMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma);
+
+    /* Clear all interrupt flags */
+    regs_dma->IFCR = 0x3FUL << (hdma->StreamIndex & 0x1FU);
+  }
+  else if(IS_BDMA_CHANNEL_INSTANCE(hdma->Instance) != 0U) /* BDMA instance(s) */
+  {
+    if(IS_BDMA_CHANNEL_DMAMUX_INSTANCE(hdma->Instance) != 0U)
+    {
+      /* Check the request parameter */
+      assert_param(IS_BDMA_REQUEST(hdma->Init.Request));
+    }
+
+    /* Change DMA peripheral state */
+    hdma->State = HAL_DMA_STATE_BUSY;
+
+    /* Allocate lock resource */
+    __HAL_UNLOCK(hdma);
+
+    /* Get the CR register value */
+    registerValue = ((BDMA_Channel_TypeDef *)hdma->Instance)->CCR;
+
+    /* Clear PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR, MEM2MEM, DBM and CT bits */
+    registerValue &= ((uint32_t)~(BDMA_CCR_PL    | BDMA_CCR_MSIZE   | BDMA_CCR_PSIZE  | \
+                                  BDMA_CCR_MINC  | BDMA_CCR_PINC    | BDMA_CCR_CIRC   | \
+                                  BDMA_CCR_DIR   | BDMA_CCR_MEM2MEM | BDMA_CCR_DBM    | \
+                                  BDMA_CCR_CT));
+
+    /* Prepare the DMA Channel configuration */
+    registerValue |=  DMA_TO_BDMA_DIRECTION(hdma->Init.Direction)            |
+                      DMA_TO_BDMA_PERIPHERAL_INC(hdma->Init.PeriphInc)       |
+                      DMA_TO_BDMA_MEMORY_INC(hdma->Init.MemInc)              |
+                      DMA_TO_BDMA_PDATA_SIZE(hdma->Init.PeriphDataAlignment) |
+                      DMA_TO_BDMA_MDATA_SIZE(hdma->Init.MemDataAlignment)    |
+                      DMA_TO_BDMA_MODE(hdma->Init.Mode)                      |
+                      DMA_TO_BDMA_PRIORITY(hdma->Init.Priority);
+
+    /* Write to DMA Channel CR register */
+    ((BDMA_Channel_TypeDef *)hdma->Instance)->CCR = registerValue;
+
+    /* calculation of the channel index */
+    hdma->StreamIndex = (((uint32_t)((uint32_t*)hdma->Instance) - (uint32_t)BDMA_Channel0) / ((uint32_t)BDMA_Channel1 - (uint32_t)BDMA_Channel0)) << 2U;
+
+    /* Initialize StreamBaseAddress and StreamIndex parameters to be used to calculate
+    DMA steam Base Address needed by HAL_DMA_IRQHandler() and HAL_DMA_PollForTransfer() */
+    regs_bdma = (BDMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma);
+
+    /* Clear all interrupt flags */
+    regs_bdma->IFCR = ((BDMA_IFCR_CGIF0) << (hdma->StreamIndex & 0x1FU));
+  }
+  else
+  {
+    hdma->ErrorCode = HAL_DMA_ERROR_PARAM;
+    hdma->State     = HAL_DMA_STATE_ERROR;
+
+    return HAL_ERROR;
+  }
+
+  if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
+  {
+    /* Initialize parameters for DMAMUX channel :
+    DMAmuxChannel, DMAmuxChannelStatus and DMAmuxChannelStatusMask
+    */
+    DMA_CalcDMAMUXChannelBaseAndMask(hdma);
+
+    if(hdma->Init.Direction == DMA_MEMORY_TO_MEMORY)
+    {
+      /* if memory to memory force the request to 0*/
+      hdma->Init.Request = DMA_REQUEST_MEM2MEM;
+    }
+
+    /* Set peripheral request  to DMAMUX channel */
+    hdma->DMAmuxChannel->CCR = (hdma->Init.Request & DMAMUX_CxCR_DMAREQ_ID);
+
+    /* Clear the DMAMUX synchro overrun flag */
+    hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+
+    /* Initialize parameters for DMAMUX request generator :
+    if the DMA request is DMA_REQUEST_GENERATOR0 to DMA_REQUEST_GENERATOR7
+    */
+    if((hdma->Init.Request >= DMA_REQUEST_GENERATOR0) && (hdma->Init.Request <= DMA_REQUEST_GENERATOR7))
+    {
+      /* Initialize parameters for DMAMUX request generator :
+      DMAmuxRequestGen, DMAmuxRequestGenStatus and DMAmuxRequestGenStatusMask */
+      DMA_CalcDMAMUXRequestGenBaseAndMask(hdma);
+
+      /* Reset the DMAMUX request generator register */
+      hdma->DMAmuxRequestGen->RGCR = 0U;
+
+      /* Clear the DMAMUX request generator overrun flag */
+      hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+    }
+    else
+    {
+      hdma->DMAmuxRequestGen = 0U;
+      hdma->DMAmuxRequestGenStatus = 0U;
+      hdma->DMAmuxRequestGenStatusMask = 0U;
+    }
+  }
+
+  /* Initialize the error code */
+  hdma->ErrorCode = HAL_DMA_ERROR_NONE;
+
+  /* Initialize the DMA state */
+  hdma->State = HAL_DMA_STATE_READY;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  DeInitializes the DMA peripheral
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA Stream.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma)
+{
+  DMA_Base_Registers *regs_dma;
+  BDMA_Base_Registers *regs_bdma;
+
+  /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Disable the selected DMA Streamx */
+  __HAL_DMA_DISABLE(hdma);
+
+  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+  {
+    /* Reset DMA Streamx control register */
+    ((DMA_Stream_TypeDef   *)hdma->Instance)->CR   = 0U;
+
+    /* Reset DMA Streamx number of data to transfer register */
+    ((DMA_Stream_TypeDef   *)hdma->Instance)->NDTR = 0U;
+
+    /* Reset DMA Streamx peripheral address register */
+    ((DMA_Stream_TypeDef   *)hdma->Instance)->PAR  = 0U;
+
+    /* Reset DMA Streamx memory 0 address register */
+    ((DMA_Stream_TypeDef   *)hdma->Instance)->M0AR = 0U;
+
+    /* Reset DMA Streamx memory 1 address register */
+    ((DMA_Stream_TypeDef   *)hdma->Instance)->M1AR = 0U;
+
+    /* Reset DMA Streamx FIFO control register */
+    ((DMA_Stream_TypeDef   *)hdma->Instance)->FCR  = (uint32_t)0x00000021U;
+
+    /* Get DMA steam Base Address */
+    regs_dma = (DMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma);
+
+    /* Clear all interrupt flags at correct offset within the register */
+    regs_dma->IFCR = 0x3FUL << (hdma->StreamIndex & 0x1FU);
+  }
+  else if(IS_BDMA_CHANNEL_INSTANCE(hdma->Instance) != 0U) /* BDMA instance(s) */
+  {
+    /* Reset DMA Channel control register */
+    ((BDMA_Channel_TypeDef *)hdma->Instance)->CCR  = 0U;
+
+    /* Reset DMA Channel Number of Data to Transfer register */
+    ((BDMA_Channel_TypeDef *)hdma->Instance)->CNDTR = 0U;
+
+    /* Reset DMA Channel peripheral address register */
+    ((BDMA_Channel_TypeDef *)hdma->Instance)->CPAR  = 0U;
+
+    /* Reset DMA Channel memory 0 address register */
+    ((BDMA_Channel_TypeDef *)hdma->Instance)->CM0AR = 0U;
+
+    /* Reset DMA Channel memory 1 address register */
+    ((BDMA_Channel_TypeDef *)hdma->Instance)->CM1AR = 0U;
+
+    /* Get DMA steam Base Address */
+    regs_bdma = (BDMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma);
+
+    /* Clear all interrupt flags at correct offset within the register */
+    regs_bdma->IFCR = ((BDMA_IFCR_CGIF0) << (hdma->StreamIndex & 0x1FU));
+  }
+  else
+  {
+    /* Return error status */
+    return HAL_ERROR;
+  }
+
+#if defined (BDMA1) /* No DMAMUX available for BDMA1 available on  STM32H7Ax/Bx devices only */
+  if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
+#endif /* BDMA1 */
+  {
+    /* Initialize parameters for DMAMUX channel :
+    DMAmuxChannel, DMAmuxChannelStatus and DMAmuxChannelStatusMask */
+    DMA_CalcDMAMUXChannelBaseAndMask(hdma);
+
+    if(hdma->DMAmuxChannel != 0U)
+    {
+      /* Resett he DMAMUX channel that corresponds to the DMA stream */
+      hdma->DMAmuxChannel->CCR = 0U;
+
+      /* Clear the DMAMUX synchro overrun flag */
+      hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+    }
+
+    if((hdma->Init.Request >= DMA_REQUEST_GENERATOR0) && (hdma->Init.Request <= DMA_REQUEST_GENERATOR7))
+    {
+      /* Initialize parameters for DMAMUX request generator :
+      DMAmuxRequestGen, DMAmuxRequestGenStatus and DMAmuxRequestGenStatusMask */
+      DMA_CalcDMAMUXRequestGenBaseAndMask(hdma);
+
+      /* Reset the DMAMUX request generator register */
+      hdma->DMAmuxRequestGen->RGCR = 0U;
+
+      /* Clear the DMAMUX request generator overrun flag */
+      hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+    }
+
+    hdma->DMAmuxRequestGen = 0U;
+    hdma->DMAmuxRequestGenStatus = 0U;
+    hdma->DMAmuxRequestGenStatusMask = 0U;
+  }
+
+
+  /* Clean callbacks */
+  hdma->XferCpltCallback       = NULL;
+  hdma->XferHalfCpltCallback   = NULL;
+  hdma->XferM1CpltCallback     = NULL;
+  hdma->XferM1HalfCpltCallback = NULL;
+  hdma->XferErrorCallback      = NULL;
+  hdma->XferAbortCallback      = NULL;
+
+  /* Initialize the error code */
+  hdma->ErrorCode = HAL_DMA_ERROR_NONE;
+
+  /* Initialize the DMA state */
+  hdma->State = HAL_DMA_STATE_RESET;
+
+  /* Release Lock */
+  __HAL_UNLOCK(hdma);
+
+  return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/** @addtogroup DMA_Exported_Functions_Group2
+  *
+@verbatim
+ ===============================================================================
+                      #####  IO operation functions  #####
+ ===============================================================================
+    [..]  This section provides functions allowing to:
+      (+) Configure the source, destination address and data length and Start DMA transfer
+      (+) Configure the source, destination address and data length and
+          Start DMA transfer with interrupt
+      (+) Register and Unregister DMA callbacks
+      (+) Abort DMA transfer
+      (+) Poll for transfer complete
+      (+) Handle DMA interrupt request
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Starts the DMA Transfer.
+  * @param  hdma      : pointer to a DMA_HandleTypeDef structure that contains
+  *                     the configuration information for the specified DMA Stream.
+  * @param  SrcAddress: The source memory Buffer address
+  * @param  DstAddress: The destination memory Buffer address
+  * @param  DataLength: The length of data to be transferred from source to destination
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Check the parameters */
+  assert_param(IS_DMA_BUFFER_SIZE(DataLength));
+
+  /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Process locked */
+  __HAL_LOCK(hdma);
+
+  if(HAL_DMA_STATE_READY == hdma->State)
+  {
+    /* Change DMA peripheral state */
+    hdma->State = HAL_DMA_STATE_BUSY;
+
+    /* Initialize the error code */
+    hdma->ErrorCode = HAL_DMA_ERROR_NONE;
+
+    /* Disable the peripheral */
+    __HAL_DMA_DISABLE(hdma);
+
+    /* Configure the source, destination address and the data length */
+    DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength);
+
+    /* Enable the Peripheral */
+    __HAL_DMA_ENABLE(hdma);
+  }
+  else
+  {
+    /* Set the error code to busy */
+    hdma->ErrorCode = HAL_DMA_ERROR_BUSY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hdma);
+
+    /* Return error status */
+    status = HAL_ERROR;
+  }
+  return status;
+}
+
+/**
+  * @brief  Start the DMA Transfer with interrupt enabled.
+  * @param  hdma:       pointer to a DMA_HandleTypeDef structure that contains
+  *                     the configuration information for the specified DMA Stream.
+  * @param  SrcAddress: The source memory Buffer address
+  * @param  DstAddress: The destination memory Buffer address
+  * @param  DataLength: The length of data to be transferred from source to destination
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Check the parameters */
+  assert_param(IS_DMA_BUFFER_SIZE(DataLength));
+
+  /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Process locked */
+  __HAL_LOCK(hdma);
+
+  if(HAL_DMA_STATE_READY == hdma->State)
+  {
+    /* Change DMA peripheral state */
+    hdma->State = HAL_DMA_STATE_BUSY;
+
+    /* Initialize the error code */
+    hdma->ErrorCode = HAL_DMA_ERROR_NONE;
+
+    /* Disable the peripheral */
+    __HAL_DMA_DISABLE(hdma);
+
+    /* Configure the source, destination address and the data length */
+    DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength);
+
+    if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+    {
+      /* Enable Common interrupts*/
+      MODIFY_REG(((DMA_Stream_TypeDef   *)hdma->Instance)->CR, (DMA_IT_TC | DMA_IT_TE | DMA_IT_DME | DMA_IT_HT), (DMA_IT_TC | DMA_IT_TE | DMA_IT_DME));
+
+      if(hdma->XferHalfCpltCallback != NULL)
+      {
+        /* Enable Half Transfer IT if corresponding Callback is set */
+        ((DMA_Stream_TypeDef   *)hdma->Instance)->CR  |= DMA_IT_HT;
+      }
+    }
+    else /* BDMA channel */
+    {
+      /* Enable Common interrupts */
+      MODIFY_REG(((BDMA_Channel_TypeDef   *)hdma->Instance)->CCR, (BDMA_CCR_TCIE | BDMA_CCR_HTIE | BDMA_CCR_TEIE), (BDMA_CCR_TCIE | BDMA_CCR_TEIE));
+
+      if(hdma->XferHalfCpltCallback != NULL)
+      {
+        /*Enable Half Transfer IT if corresponding Callback is set */
+        ((BDMA_Channel_TypeDef   *)hdma->Instance)->CCR  |= BDMA_CCR_HTIE;
+      }
+    }
+
+    if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
+    {
+      /* Check if DMAMUX Synchronization is enabled */
+      if((hdma->DMAmuxChannel->CCR & DMAMUX_CxCR_SE) != 0U)
+      {
+        /* Enable DMAMUX sync overrun IT*/
+        hdma->DMAmuxChannel->CCR |= DMAMUX_CxCR_SOIE;
+      }
+
+      if(hdma->DMAmuxRequestGen != 0U)
+      {
+        /* if using DMAMUX request generator, enable the DMAMUX request generator overrun IT*/
+        /* enable the request gen overrun IT */
+        hdma->DMAmuxRequestGen->RGCR |= DMAMUX_RGxCR_OIE;
+      }
+    }
+
+    /* Enable the Peripheral */
+    __HAL_DMA_ENABLE(hdma);
+  }
+  else
+  {
+    /* Set the error code to busy */
+    hdma->ErrorCode = HAL_DMA_ERROR_BUSY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hdma);
+
+    /* Return error status */
+    status = HAL_ERROR;
+  }
+
+  return status;
+}
+
+/**
+  * @brief  Aborts the DMA Transfer.
+  * @param  hdma  : pointer to a DMA_HandleTypeDef structure that contains
+  *                 the configuration information for the specified DMA Stream.
+  *
+  * @note  After disabling a DMA Stream, a check for wait until the DMA Stream is
+  *        effectively disabled is added. If a Stream is disabled
+  *        while a data transfer is ongoing, the current data will be transferred
+  *        and the Stream will be effectively disabled only after the transfer of
+  *        this single data is finished.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
+{
+  /* calculate DMA base and stream number */
+  DMA_Base_Registers *regs_dma;
+  BDMA_Base_Registers *regs_bdma;
+  const __IO uint32_t *enableRegister;
+
+  uint32_t tickstart = HAL_GetTick();
+
+ /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Check the DMA peripheral state */
+  if(hdma->State != HAL_DMA_STATE_BUSY)
+  {
+    hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hdma);
+
+    return HAL_ERROR;
+  }
+  else
+  {
+    /* Disable all the transfer interrupts */
+    if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+    {
+       /* Disable DMA All Interrupts  */
+      ((DMA_Stream_TypeDef   *)hdma->Instance)->CR  &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME | DMA_IT_HT);
+      ((DMA_Stream_TypeDef   *)hdma->Instance)->FCR &= ~(DMA_IT_FE);
+
+      enableRegister = (__IO uint32_t *)(&(((DMA_Stream_TypeDef   *)hdma->Instance)->CR));
+    }
+    else /* BDMA channel */
+    {
+      /* Disable DMA All Interrupts */
+      ((BDMA_Channel_TypeDef   *)hdma->Instance)->CCR  &= ~(BDMA_CCR_TCIE | BDMA_CCR_HTIE | BDMA_CCR_TEIE);
+
+      enableRegister = (__IO uint32_t *)(&(((BDMA_Channel_TypeDef   *)hdma->Instance)->CCR));
+    }
+
+    if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
+    {
+      /* disable the DMAMUX sync overrun IT */
+      hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE;
+    }
+
+    /* Disable the stream */
+    __HAL_DMA_DISABLE(hdma);
+
+    /* Check if the DMA Stream is effectively disabled */
+    while(((*enableRegister) & DMA_SxCR_EN) != 0U)
+    {
+      /* Check for the Timeout */
+      if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT)
+      {
+        /* Update error code */
+        hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
+
+        /* Change the DMA state */
+        hdma->State = HAL_DMA_STATE_ERROR;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hdma);
+
+        return HAL_ERROR;
+      }
+    }
+
+    /* Clear all interrupt flags at correct offset within the register */
+    if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+    {
+      regs_dma = (DMA_Base_Registers *)hdma->StreamBaseAddress;
+      regs_dma->IFCR = 0x3FUL << (hdma->StreamIndex & 0x1FU);
+    }
+    else /* BDMA channel */
+    {
+      regs_bdma = (BDMA_Base_Registers *)hdma->StreamBaseAddress;
+      regs_bdma->IFCR = ((BDMA_IFCR_CGIF0) << (hdma->StreamIndex & 0x1FU));
+    }
+
+    if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
+    {
+      /* Clear the DMAMUX synchro overrun flag */
+      hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+
+      if(hdma->DMAmuxRequestGen != 0U)
+      {
+        /* if using DMAMUX request generator, disable the DMAMUX request generator overrun IT */
+        /* disable the request gen overrun IT */
+        hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE;
+
+        /* Clear the DMAMUX request generator overrun flag */
+        hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+      }
+    }
+
+    /* Change the DMA state */
+    hdma->State = HAL_DMA_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hdma);
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Aborts the DMA Transfer in Interrupt mode.
+  * @param  hdma  : pointer to a DMA_HandleTypeDef structure that contains
+  *                 the configuration information for the specified DMA Stream.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
+{
+  BDMA_Base_Registers *regs_bdma;
+
+  /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  if(hdma->State != HAL_DMA_STATE_BUSY)
+  {
+    hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
+    return HAL_ERROR;
+  }
+  else
+  {
+    if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+    {
+      /* Set Abort State  */
+      hdma->State = HAL_DMA_STATE_ABORT;
+
+      /* Disable the stream */
+      __HAL_DMA_DISABLE(hdma);
+    }
+    else /* BDMA channel */
+    {
+      /* Disable DMA All Interrupts  */
+      ((BDMA_Channel_TypeDef   *)hdma->Instance)->CCR  &= ~(BDMA_CCR_TCIE | BDMA_CCR_HTIE | BDMA_CCR_TEIE);
+
+      /* Disable the channel */
+      __HAL_DMA_DISABLE(hdma);
+
+      if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
+      {
+        /* disable the DMAMUX sync overrun IT */
+        hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE;
+
+        /* Clear all flags */
+        regs_bdma = (BDMA_Base_Registers *)hdma->StreamBaseAddress;
+        regs_bdma->IFCR = ((BDMA_IFCR_CGIF0) << (hdma->StreamIndex & 0x1FU));
+
+        /* Clear the DMAMUX synchro overrun flag */
+        hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+
+        if(hdma->DMAmuxRequestGen != 0U)
+        {
+          /* if using DMAMUX request generator, disable the DMAMUX request generator overrun IT*/
+          /* disable the request gen overrun IT */
+          hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE;
+
+          /* Clear the DMAMUX request generator overrun flag */
+          hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+        }
+      }
+
+      /* Change the DMA state */
+      hdma->State = HAL_DMA_STATE_READY;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(hdma);
+
+      /* Call User Abort callback */
+      if(hdma->XferAbortCallback != NULL)
+      {
+        hdma->XferAbortCallback(hdma);
+      }
+    }
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Polling for transfer complete.
+  * @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 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.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+  uint32_t cpltlevel_mask;
+  uint32_t tickstart = HAL_GetTick();
+
+  /* IT status register */
+  __IO uint32_t *isr_reg;
+  /* IT clear flag register */
+  __IO uint32_t *ifcr_reg;
+
+  /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  if(HAL_DMA_STATE_BUSY != hdma->State)
+  {
+    /* No transfer ongoing */
+    hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
+    __HAL_UNLOCK(hdma);
+
+    return HAL_ERROR;
+  }
+
+  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+  {
+    /* Polling mode not supported in circular mode and double buffering mode */
+    if ((((DMA_Stream_TypeDef   *)hdma->Instance)->CR & DMA_SxCR_CIRC) != 0U)
+    {
+      hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED;
+      return HAL_ERROR;
+    }
+
+    /* Get the level transfer complete flag */
+    if(CompleteLevel == HAL_DMA_FULL_TRANSFER)
+    {
+      /* Transfer Complete flag */
+      cpltlevel_mask = DMA_FLAG_TCIF0_4 << (hdma->StreamIndex & 0x1FU);
+    }
+    else
+    {
+      /* Half Transfer Complete flag */
+      cpltlevel_mask = DMA_FLAG_HTIF0_4 << (hdma->StreamIndex & 0x1FU);
+    }
+
+    isr_reg  = &(((DMA_Base_Registers *)hdma->StreamBaseAddress)->ISR);
+    ifcr_reg = &(((DMA_Base_Registers *)hdma->StreamBaseAddress)->IFCR);
+  }
+  else /* BDMA channel */
+  {
+    /* Polling mode not supported in circular mode */
+    if ((((BDMA_Channel_TypeDef   *)hdma->Instance)->CCR & BDMA_CCR_CIRC) != 0U)
+    {
+      hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED;
+      return HAL_ERROR;
+    }
+
+    /* Get the level transfer complete flag */
+    if(CompleteLevel == HAL_DMA_FULL_TRANSFER)
+    {
+      /* Transfer Complete flag */
+      cpltlevel_mask = BDMA_FLAG_TC0 << (hdma->StreamIndex & 0x1FU);
+    }
+    else
+    {
+      /* Half Transfer Complete flag */
+      cpltlevel_mask = BDMA_FLAG_HT0 << (hdma->StreamIndex & 0x1FU);
+    }
+
+    isr_reg  = &(((BDMA_Base_Registers *)hdma->StreamBaseAddress)->ISR);
+    ifcr_reg = &(((BDMA_Base_Registers *)hdma->StreamBaseAddress)->IFCR);
+  }
+
+  while(((*isr_reg) & cpltlevel_mask) == 0U)
+  {
+    if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+    {
+      if(((*isr_reg) & (DMA_FLAG_FEIF0_4 << (hdma->StreamIndex & 0x1FU))) != 0U)
+      {
+        /* Update error code */
+        hdma->ErrorCode |= HAL_DMA_ERROR_FE;
+
+        /* Clear the FIFO error flag */
+        (*ifcr_reg) = DMA_FLAG_FEIF0_4 << (hdma->StreamIndex & 0x1FU);
+      }
+
+      if(((*isr_reg) & (DMA_FLAG_DMEIF0_4 << (hdma->StreamIndex & 0x1FU))) != 0U)
+      {
+        /* Update error code */
+        hdma->ErrorCode |= HAL_DMA_ERROR_DME;
+
+        /* Clear the Direct Mode error flag */
+        (*ifcr_reg) = DMA_FLAG_DMEIF0_4 << (hdma->StreamIndex & 0x1FU);
+      }
+
+      if(((*isr_reg) & (DMA_FLAG_TEIF0_4 << (hdma->StreamIndex & 0x1FU))) != 0U)
+      {
+        /* Update error code */
+        hdma->ErrorCode |= HAL_DMA_ERROR_TE;
+
+        /* Clear the transfer error flag */
+        (*ifcr_reg) = DMA_FLAG_TEIF0_4 << (hdma->StreamIndex & 0x1FU);
+
+        /* Change the DMA state */
+        hdma->State = HAL_DMA_STATE_READY;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hdma);
+
+        return HAL_ERROR;
+      }
+    }
+    else /* BDMA channel */
+    {
+      if(((*isr_reg) & (BDMA_FLAG_TE0 << (hdma->StreamIndex & 0x1FU))) != 0U)
+      {
+        /* When a DMA transfer error occurs */
+        /* A hardware clear of its EN bits is performed */
+        /* Clear all flags */
+        (*isr_reg) = ((BDMA_ISR_GIF0) << (hdma->StreamIndex & 0x1FU));
+
+        /* Update error code */
+        hdma->ErrorCode = HAL_DMA_ERROR_TE;
+
+        /* Change the DMA state */
+        hdma->State = HAL_DMA_STATE_READY;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hdma);
+
+        return HAL_ERROR;
+      }
+    }
+
+    /* Check for the Timeout (Not applicable in circular mode)*/
+    if(Timeout != HAL_MAX_DELAY)
+    {
+      if(((HAL_GetTick() - tickstart ) > Timeout)||(Timeout == 0U))
+      {
+        /* Update error code */
+        hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
+
+        /* if timeout then abort the current transfer */
+        /* No need to check return value: as in this case we will return HAL_ERROR with HAL_DMA_ERROR_TIMEOUT error code  */
+        (void) HAL_DMA_Abort(hdma);
+          /*
+            Note that the Abort function will
+              - Clear the transfer error flags
+              - Unlock
+              - Set the State
+          */
+
+        return HAL_ERROR;
+      }
+    }
+
+    if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
+    {
+      /* Check for DMAMUX Request generator (if used) overrun status */
+      if(hdma->DMAmuxRequestGen != 0U)
+      {
+        /* if using DMAMUX request generator Check for DMAMUX request generator overrun */
+        if((hdma->DMAmuxRequestGenStatus->RGSR & hdma->DMAmuxRequestGenStatusMask) != 0U)
+        {
+          /* Clear the DMAMUX request generator overrun flag */
+          hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+
+          /* Update error code */
+          hdma->ErrorCode |= HAL_DMA_ERROR_REQGEN;
+        }
+      }
+
+      /* Check for DMAMUX Synchronization overrun */
+      if((hdma->DMAmuxChannelStatus->CSR & hdma->DMAmuxChannelStatusMask) != 0U)
+      {
+        /* Clear the DMAMUX synchro overrun flag */
+        hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+
+        /* Update error code */
+        hdma->ErrorCode |= HAL_DMA_ERROR_SYNC;
+      }
+    }
+  }
+
+
+  /* Get the level transfer complete flag */
+  if(CompleteLevel == HAL_DMA_FULL_TRANSFER)
+  {
+    /* Clear the half transfer and transfer complete flags */
+    if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+    {
+      (*ifcr_reg) = (DMA_FLAG_HTIF0_4 | DMA_FLAG_TCIF0_4) << (hdma->StreamIndex & 0x1FU);
+    }
+    else /* BDMA channel */
+    {
+      (*ifcr_reg) = (BDMA_FLAG_TC0 << (hdma->StreamIndex & 0x1FU));
+    }
+
+    hdma->State = HAL_DMA_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hdma);
+  }
+  else /*CompleteLevel = HAL_DMA_HALF_TRANSFER*/
+  {
+    /* Clear the half transfer and transfer complete flags */
+    if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+    {
+      (*ifcr_reg) = (DMA_FLAG_HTIF0_4) << (hdma->StreamIndex & 0x1FU);
+    }
+    else /* BDMA channel */
+    {
+      (*ifcr_reg) = (BDMA_FLAG_HT0 << (hdma->StreamIndex & 0x1FU));
+    }
+  }
+
+  return status;
+}
+
+/**
+  * @brief  Handles DMA interrupt request.
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA Stream.
+  * @retval None
+  */
+void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
+{
+  uint32_t tmpisr_dma, tmpisr_bdma;
+  uint32_t ccr_reg;
+  __IO uint32_t count = 0U;
+  uint32_t timeout = SystemCoreClock / 9600U;
+
+  /* calculate DMA base and stream number */
+  DMA_Base_Registers  *regs_dma  = (DMA_Base_Registers *)hdma->StreamBaseAddress;
+  BDMA_Base_Registers *regs_bdma = (BDMA_Base_Registers *)hdma->StreamBaseAddress;
+
+  tmpisr_dma  = regs_dma->ISR;
+  tmpisr_bdma = regs_bdma->ISR;
+
+  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U)  /* DMA1 or DMA2 instance */
+  {
+    /* Transfer Error Interrupt management ***************************************/
+    if ((tmpisr_dma & (DMA_FLAG_TEIF0_4 << (hdma->StreamIndex & 0x1FU))) != 0U)
+    {
+      if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != 0U)
+      {
+        /* Disable the transfer error interrupt */
+        ((DMA_Stream_TypeDef   *)hdma->Instance)->CR  &= ~(DMA_IT_TE);
+
+        /* Clear the transfer error flag */
+        regs_dma->IFCR = DMA_FLAG_TEIF0_4 << (hdma->StreamIndex & 0x1FU);
+
+        /* Update error code */
+        hdma->ErrorCode |= HAL_DMA_ERROR_TE;
+      }
+    }
+    /* FIFO Error Interrupt management ******************************************/
+    if ((tmpisr_dma & (DMA_FLAG_FEIF0_4 << (hdma->StreamIndex & 0x1FU))) != 0U)
+    {
+      if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != 0U)
+      {
+        /* Clear the FIFO error flag */
+        regs_dma->IFCR = DMA_FLAG_FEIF0_4 << (hdma->StreamIndex & 0x1FU);
+
+        /* Update error code */
+        hdma->ErrorCode |= HAL_DMA_ERROR_FE;
+      }
+    }
+    /* Direct Mode Error Interrupt management ***********************************/
+    if ((tmpisr_dma & (DMA_FLAG_DMEIF0_4 << (hdma->StreamIndex & 0x1FU))) != 0U)
+    {
+      if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != 0U)
+      {
+        /* Clear the direct mode error flag */
+        regs_dma->IFCR = DMA_FLAG_DMEIF0_4 << (hdma->StreamIndex & 0x1FU);
+
+        /* Update error code */
+        hdma->ErrorCode |= HAL_DMA_ERROR_DME;
+      }
+    }
+    /* Half Transfer Complete Interrupt management ******************************/
+    if ((tmpisr_dma & (DMA_FLAG_HTIF0_4 << (hdma->StreamIndex & 0x1FU))) != 0U)
+    {
+      if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != 0U)
+      {
+        /* Clear the half transfer complete flag */
+        regs_dma->IFCR = DMA_FLAG_HTIF0_4 << (hdma->StreamIndex & 0x1FU);
+
+        /* Multi_Buffering mode enabled */
+        if(((((DMA_Stream_TypeDef   *)hdma->Instance)->CR) & (uint32_t)(DMA_SxCR_DBM)) != 0U)
+        {
+          /* Current memory buffer used is Memory 0 */
+          if((((DMA_Stream_TypeDef   *)hdma->Instance)->CR & DMA_SxCR_CT) == 0U)
+          {
+            if(hdma->XferHalfCpltCallback != NULL)
+            {
+              /* Half transfer callback */
+              hdma->XferHalfCpltCallback(hdma);
+            }
+          }
+          /* Current memory buffer used is Memory 1 */
+          else
+          {
+            if(hdma->XferM1HalfCpltCallback != NULL)
+            {
+              /* Half transfer callback */
+              hdma->XferM1HalfCpltCallback(hdma);
+            }
+          }
+        }
+        else
+        {
+          /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */
+          if((((DMA_Stream_TypeDef   *)hdma->Instance)->CR & DMA_SxCR_CIRC) == 0U)
+          {
+            /* Disable the half transfer interrupt */
+            ((DMA_Stream_TypeDef   *)hdma->Instance)->CR  &= ~(DMA_IT_HT);
+          }
+
+          if(hdma->XferHalfCpltCallback != NULL)
+          {
+            /* Half transfer callback */
+            hdma->XferHalfCpltCallback(hdma);
+          }
+        }
+      }
+    }
+    /* Transfer Complete Interrupt management ***********************************/
+    if ((tmpisr_dma & (DMA_FLAG_TCIF0_4 << (hdma->StreamIndex & 0x1FU))) != 0U)
+    {
+      if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != 0U)
+      {
+        /* Clear the transfer complete flag */
+        regs_dma->IFCR = DMA_FLAG_TCIF0_4 << (hdma->StreamIndex & 0x1FU);
+
+        if(HAL_DMA_STATE_ABORT == hdma->State)
+        {
+          /* Disable all the transfer interrupts */
+          ((DMA_Stream_TypeDef   *)hdma->Instance)->CR  &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
+          ((DMA_Stream_TypeDef   *)hdma->Instance)->FCR &= ~(DMA_IT_FE);
+
+          if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
+          {
+            ((DMA_Stream_TypeDef   *)hdma->Instance)->CR  &= ~(DMA_IT_HT);
+          }
+
+          /* Clear all interrupt flags at correct offset within the register */
+          regs_dma->IFCR = 0x3FUL << (hdma->StreamIndex & 0x1FU);
+
+          /* Change the DMA state */
+          hdma->State = HAL_DMA_STATE_READY;
+
+          /* Process Unlocked */
+          __HAL_UNLOCK(hdma);
+
+          if(hdma->XferAbortCallback != NULL)
+          {
+            hdma->XferAbortCallback(hdma);
+          }
+          return;
+        }
+
+        if(((((DMA_Stream_TypeDef   *)hdma->Instance)->CR) & (uint32_t)(DMA_SxCR_DBM)) != 0U)
+        {
+          /* Current memory buffer used is Memory 0 */
+          if((((DMA_Stream_TypeDef   *)hdma->Instance)->CR & DMA_SxCR_CT) == 0U)
+          {
+            if(hdma->XferM1CpltCallback != NULL)
+            {
+              /* Transfer complete Callback for memory1 */
+              hdma->XferM1CpltCallback(hdma);
+            }
+          }
+          /* Current memory buffer used is Memory 1 */
+          else
+          {
+            if(hdma->XferCpltCallback != NULL)
+            {
+              /* Transfer complete Callback for memory0 */
+              hdma->XferCpltCallback(hdma);
+            }
+          }
+        }
+        /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */
+        else
+        {
+          if((((DMA_Stream_TypeDef   *)hdma->Instance)->CR & DMA_SxCR_CIRC) == 0U)
+          {
+            /* Disable the transfer complete interrupt */
+            ((DMA_Stream_TypeDef   *)hdma->Instance)->CR  &= ~(DMA_IT_TC);
+
+            /* Change the DMA state */
+            hdma->State = HAL_DMA_STATE_READY;
+
+            /* Process Unlocked */
+            __HAL_UNLOCK(hdma);
+          }
+
+          if(hdma->XferCpltCallback != NULL)
+          {
+            /* Transfer complete callback */
+            hdma->XferCpltCallback(hdma);
+          }
+        }
+      }
+    }
+
+    /* manage error case */
+    if(hdma->ErrorCode != HAL_DMA_ERROR_NONE)
+    {
+      if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != 0U)
+      {
+        hdma->State = HAL_DMA_STATE_ABORT;
+
+        /* Disable the stream */
+        __HAL_DMA_DISABLE(hdma);
+
+        do
+        {
+          if (++count > timeout)
+          {
+            break;
+          }
+        }
+        while((((DMA_Stream_TypeDef   *)hdma->Instance)->CR & DMA_SxCR_EN) != 0U);
+
+        if((((DMA_Stream_TypeDef   *)hdma->Instance)->CR & DMA_SxCR_EN) != 0U)
+        {
+          /* Change the DMA state to error if DMA disable fails */
+          hdma->State = HAL_DMA_STATE_ERROR;
+        }
+        else
+        {
+          /* Change the DMA state to Ready if DMA disable success */
+          hdma->State = HAL_DMA_STATE_READY;
+        }
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hdma);
+      }
+
+      if(hdma->XferErrorCallback != NULL)
+      {
+        /* Transfer error callback */
+        hdma->XferErrorCallback(hdma);
+      }
+    }
+  }
+  else if(IS_BDMA_CHANNEL_INSTANCE(hdma->Instance) != 0U)  /* BDMA instance(s) */
+  {
+    ccr_reg = (((BDMA_Channel_TypeDef   *)hdma->Instance)->CCR);
+
+    /* Half Transfer Complete Interrupt management ******************************/
+    if (((tmpisr_bdma & (BDMA_FLAG_HT0 << (hdma->StreamIndex & 0x1FU))) != 0U) && ((ccr_reg & BDMA_CCR_HTIE) != 0U))
+    {
+      /* Clear the half transfer complete flag */
+      regs_bdma->IFCR = (BDMA_ISR_HTIF0 << (hdma->StreamIndex & 0x1FU));
+
+      /* Disable the transfer complete interrupt if the DMA mode is Double Buffering */
+      if((ccr_reg & BDMA_CCR_DBM) != 0U)
+      {
+        /* Current memory buffer used is Memory 0 */
+        if((ccr_reg & BDMA_CCR_CT) == 0U)
+        {
+          if(hdma->XferM1HalfCpltCallback != NULL)
+          {
+            /* Half transfer Callback for Memory 1 */
+            hdma->XferM1HalfCpltCallback(hdma);
+          }
+        }
+        /* Current memory buffer used is Memory 1 */
+        else
+        {
+          if(hdma->XferHalfCpltCallback != NULL)
+          {
+            /* Half transfer Callback for Memory 0 */
+            hdma->XferHalfCpltCallback(hdma);
+          }
+        }
+      }
+      else
+      {
+        if((ccr_reg & BDMA_CCR_CIRC) == 0U)
+        {
+          /* Disable the half transfer interrupt */
+          __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT);
+        }
+
+        /* DMA peripheral state is not updated in Half Transfer */
+        /* but in Transfer Complete case */
+
+       if(hdma->XferHalfCpltCallback != NULL)
+        {
+          /* Half transfer callback */
+          hdma->XferHalfCpltCallback(hdma);
+        }
+      }
+    }
+
+    /* Transfer Complete Interrupt management ***********************************/
+    else if (((tmpisr_bdma & (BDMA_FLAG_TC0 << (hdma->StreamIndex & 0x1FU))) != 0U) && ((ccr_reg & BDMA_CCR_TCIE) != 0U))
+    {
+      /* Clear the transfer complete flag */
+      regs_bdma->IFCR = (BDMA_ISR_TCIF0) << (hdma->StreamIndex & 0x1FU);
+
+      /* Disable the transfer complete interrupt if the DMA mode is Double Buffering */
+      if((ccr_reg & BDMA_CCR_DBM) != 0U)
+      {
+        /* Current memory buffer used is Memory 0 */
+        if((ccr_reg & BDMA_CCR_CT) == 0U)
+        {
+          if(hdma->XferM1CpltCallback != NULL)
+          {
+            /* Transfer complete Callback for Memory 1 */
+            hdma->XferM1CpltCallback(hdma);
+          }
+        }
+        /* Current memory buffer used is Memory 1 */
+        else
+        {
+          if(hdma->XferCpltCallback != NULL)
+          {
+            /* Transfer complete Callback for Memory 0 */
+            hdma->XferCpltCallback(hdma);
+          }
+        }
+      }
+      else
+      {
+        if((ccr_reg & BDMA_CCR_CIRC) == 0U)
+        {
+          /* Disable the transfer complete and error interrupt, if the DMA mode is not CIRCULAR */
+          __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC);
+
+          /* Change the DMA state */
+          hdma->State = HAL_DMA_STATE_READY;
+
+          /* Process Unlocked */
+          __HAL_UNLOCK(hdma);
+        }
+
+        if(hdma->XferCpltCallback != NULL)
+        {
+          /* Transfer complete callback */
+          hdma->XferCpltCallback(hdma);
+        }
+      }
+    }
+    /* Transfer Error Interrupt management **************************************/
+    else if (((tmpisr_bdma & (BDMA_FLAG_TE0 << (hdma->StreamIndex & 0x1FU))) != 0U) && ((ccr_reg & BDMA_CCR_TEIE) != 0U))
+    {
+      /* When a DMA transfer error occurs */
+      /* A hardware clear of its EN bits is performed */
+      /* Disable ALL DMA IT */
+      __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
+
+      /* Clear all flags */
+      regs_bdma->IFCR = (BDMA_ISR_GIF0) << (hdma->StreamIndex & 0x1FU);
+
+      /* Update error code */
+      hdma->ErrorCode = HAL_DMA_ERROR_TE;
+
+      /* Change the DMA state */
+      hdma->State = HAL_DMA_STATE_READY;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(hdma);
+
+      if (hdma->XferErrorCallback != NULL)
+      {
+        /* Transfer error callback */
+        hdma->XferErrorCallback(hdma);
+      }
+    }
+    else
+    {
+      /* Nothing To Do */
+    }
+  }
+  else
+  {
+    /* Nothing To Do */
+  }
+}
+
+/**
+  * @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 identifier
+  *                               a DMA_HandleTypeDef structure as parameter.
+  * @param  pCallback:            pointer to private callback function which has pointer to
+  *                               a DMA_HandleTypeDef structure as parameter.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)(DMA_HandleTypeDef *_hdma))
+{
+
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Process locked */
+  __HAL_LOCK(hdma);
+
+  if(HAL_DMA_STATE_READY == hdma->State)
+  {
+    switch (CallbackID)
+    {
+    case  HAL_DMA_XFER_CPLT_CB_ID:
+      hdma->XferCpltCallback = pCallback;
+      break;
+
+    case  HAL_DMA_XFER_HALFCPLT_CB_ID:
+      hdma->XferHalfCpltCallback = pCallback;
+      break;
+
+    case  HAL_DMA_XFER_M1CPLT_CB_ID:
+      hdma->XferM1CpltCallback = pCallback;
+      break;
+
+    case  HAL_DMA_XFER_M1HALFCPLT_CB_ID:
+      hdma->XferM1HalfCpltCallback = pCallback;
+      break;
+
+    case  HAL_DMA_XFER_ERROR_CB_ID:
+      hdma->XferErrorCallback = pCallback;
+      break;
+
+    case  HAL_DMA_XFER_ABORT_CB_ID:
+      hdma->XferAbortCallback = pCallback;
+      break;
+
+    default:
+      status =  HAL_ERROR;
+      break;
+    }
+  }
+  else
+  {
+    /* Return error status */
+    status =  HAL_ERROR;
+  }
+
+  /* Release Lock */
+  __HAL_UNLOCK(hdma);
+
+  return status;
+}
+
+/**
+  * @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 identifier
+  *                               a HAL_DMA_CallbackIDTypeDef ENUM as parameter.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Check the DMA peripheral handle */
+  if(hdma == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Process locked */
+  __HAL_LOCK(hdma);
+
+  if(HAL_DMA_STATE_READY == hdma->State)
+  {
+    switch (CallbackID)
+    {
+    case  HAL_DMA_XFER_CPLT_CB_ID:
+      hdma->XferCpltCallback = NULL;
+      break;
+
+    case  HAL_DMA_XFER_HALFCPLT_CB_ID:
+      hdma->XferHalfCpltCallback = NULL;
+      break;
+
+    case  HAL_DMA_XFER_M1CPLT_CB_ID:
+      hdma->XferM1CpltCallback = NULL;
+      break;
+
+    case  HAL_DMA_XFER_M1HALFCPLT_CB_ID:
+      hdma->XferM1HalfCpltCallback = NULL;
+      break;
+
+    case  HAL_DMA_XFER_ERROR_CB_ID:
+      hdma->XferErrorCallback = NULL;
+      break;
+
+    case  HAL_DMA_XFER_ABORT_CB_ID:
+      hdma->XferAbortCallback = NULL;
+      break;
+
+    case   HAL_DMA_XFER_ALL_CB_ID:
+      hdma->XferCpltCallback = NULL;
+      hdma->XferHalfCpltCallback = NULL;
+      hdma->XferM1CpltCallback = NULL;
+      hdma->XferM1HalfCpltCallback = NULL;
+      hdma->XferErrorCallback = NULL;
+      hdma->XferAbortCallback = NULL;
+      break;
+
+    default:
+      status = HAL_ERROR;
+      break;
+    }
+  }
+  else
+  {
+    status = HAL_ERROR;
+  }
+
+  /* Release Lock */
+  __HAL_UNLOCK(hdma);
+
+  return status;
+}
+
+/**
+  * @}
+  */
+
+/** @addtogroup DMA_Exported_Functions_Group3
+  *
+@verbatim
+ ===============================================================================
+                    ##### State and Errors functions #####
+ ===============================================================================
+    [..]
+    This subsection provides functions allowing to
+      (+) Check the DMA state
+      (+) Get error code
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Returns the DMA state.
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA Stream.
+  * @retval HAL state
+  */
+HAL_DMA_StateTypeDef HAL_DMA_GetState(const DMA_HandleTypeDef *hdma)
+{
+  return hdma->State;
+}
+
+/**
+  * @brief  Return the DMA error code
+  * @param  hdma : pointer to a DMA_HandleTypeDef structure that contains
+  *              the configuration information for the specified DMA Stream.
+  * @retval DMA Error Code
+  */
+uint32_t HAL_DMA_GetError(const DMA_HandleTypeDef *hdma)
+{
+  return hdma->ErrorCode;
+}
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/** @addtogroup DMA_Private_Functions
+  * @{
+  */
+
+/**
+  * @brief  Sets the DMA Transfer parameter.
+  * @param  hdma:       pointer to a DMA_HandleTypeDef structure that contains
+  *                     the configuration information for the specified DMA Stream.
+  * @param  SrcAddress: The source memory Buffer address
+  * @param  DstAddress: The destination memory Buffer address
+  * @param  DataLength: The length of data to be transferred from source to destination
+  * @retval None
+  */
+static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
+{
+  /* calculate DMA base and stream number */
+  DMA_Base_Registers  *regs_dma  = (DMA_Base_Registers *)hdma->StreamBaseAddress;
+  BDMA_Base_Registers *regs_bdma = (BDMA_Base_Registers *)hdma->StreamBaseAddress;
+
+  if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
+  {
+    /* Clear the DMAMUX synchro overrun flag */
+    hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+
+    if(hdma->DMAmuxRequestGen != 0U)
+    {
+      /* Clear the DMAMUX request generator overrun flag */
+      hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+    }
+  }
+
+  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+  {
+    /* Clear all interrupt flags at correct offset within the register */
+    regs_dma->IFCR = 0x3FUL << (hdma->StreamIndex & 0x1FU);
+
+    /* Clear DBM bit */
+    ((DMA_Stream_TypeDef *)hdma->Instance)->CR &= (uint32_t)(~DMA_SxCR_DBM);
+
+    /* Configure DMA Stream data length */
+    ((DMA_Stream_TypeDef *)hdma->Instance)->NDTR = DataLength;
+
+    /* Peripheral to Memory */
+    if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH)
+    {
+      /* Configure DMA Stream destination address */
+      ((DMA_Stream_TypeDef *)hdma->Instance)->PAR = DstAddress;
+
+      /* Configure DMA Stream source address */
+      ((DMA_Stream_TypeDef *)hdma->Instance)->M0AR = SrcAddress;
+    }
+    /* Memory to Peripheral */
+    else
+    {
+      /* Configure DMA Stream source address */
+      ((DMA_Stream_TypeDef *)hdma->Instance)->PAR = SrcAddress;
+
+      /* Configure DMA Stream destination address */
+      ((DMA_Stream_TypeDef *)hdma->Instance)->M0AR = DstAddress;
+    }
+  }
+  else if(IS_BDMA_CHANNEL_INSTANCE(hdma->Instance) != 0U) /* BDMA instance(s) */
+  {
+    /* Clear all flags */
+    regs_bdma->IFCR = (BDMA_ISR_GIF0) << (hdma->StreamIndex & 0x1FU);
+
+    /* Configure DMA Channel data length */
+    ((BDMA_Channel_TypeDef *)hdma->Instance)->CNDTR = DataLength;
+
+    /* Peripheral to Memory */
+    if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH)
+    {
+      /* Configure DMA Channel destination address */
+      ((BDMA_Channel_TypeDef *)hdma->Instance)->CPAR = DstAddress;
+
+      /* Configure DMA Channel source address */
+      ((BDMA_Channel_TypeDef *)hdma->Instance)->CM0AR = SrcAddress;
+    }
+    /* Memory to Peripheral */
+    else
+    {
+      /* Configure DMA Channel source address */
+      ((BDMA_Channel_TypeDef *)hdma->Instance)->CPAR = SrcAddress;
+
+      /* Configure DMA Channel destination address */
+      ((BDMA_Channel_TypeDef *)hdma->Instance)->CM0AR = DstAddress;
+    }
+  }
+  else
+  {
+    /* Nothing To Do */
+  }
+}
+
+/**
+  * @brief  Returns the DMA Stream base address depending on stream number
+  * @param  hdma:       pointer to a DMA_HandleTypeDef structure that contains
+  *                     the configuration information for the specified DMA Stream.
+  * @retval Stream base address
+  */
+static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma)
+{
+  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
+  {
+    uint32_t stream_number = (((uint32_t)((uint32_t*)hdma->Instance) & 0xFFU) - 16U) / 24U;
+
+    /* lookup table for necessary bitshift of flags within status registers */
+    static const uint8_t flagBitshiftOffset[8U] = {0U, 6U, 16U, 22U, 0U, 6U, 16U, 22U};
+    hdma->StreamIndex = flagBitshiftOffset[stream_number & 0x7U];
+
+    if (stream_number > 3U)
+    {
+      /* return pointer to HISR and HIFCR */
+      hdma->StreamBaseAddress = (((uint32_t)((uint32_t*)hdma->Instance) & (uint32_t)(~0x3FFU)) + 4U);
+    }
+    else
+    {
+      /* return pointer to LISR and LIFCR */
+      hdma->StreamBaseAddress = ((uint32_t)((uint32_t*)hdma->Instance) & (uint32_t)(~0x3FFU));
+    }
+  }
+  else /* BDMA instance(s) */
+  {
+    /* return pointer to ISR and IFCR */
+    hdma->StreamBaseAddress = ((uint32_t)((uint32_t*)hdma->Instance) & (uint32_t)(~0xFFU));
+  }
+
+  return hdma->StreamBaseAddress;
+}
+
+/**
+  * @brief  Check compatibility between FIFO threshold level and size of the memory burst
+  * @param  hdma:       pointer to a DMA_HandleTypeDef structure that contains
+  *                     the configuration information for the specified DMA Stream.
+  * @retval HAL status
+  */
+static HAL_StatusTypeDef DMA_CheckFifoParam(const DMA_HandleTypeDef *hdma)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Memory Data size equal to Byte */
+  if (hdma->Init.MemDataAlignment == DMA_MDATAALIGN_BYTE)
+  {
+    switch (hdma->Init.FIFOThreshold)
+    {
+      case DMA_FIFO_THRESHOLD_1QUARTERFULL:
+      case DMA_FIFO_THRESHOLD_3QUARTERSFULL:
+
+        if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
+        {
+          status = HAL_ERROR;
+        }
+        break;
+
+      case DMA_FIFO_THRESHOLD_HALFFULL:
+        if (hdma->Init.MemBurst == DMA_MBURST_INC16)
+        {
+          status = HAL_ERROR;
+        }
+        break;
+
+      case DMA_FIFO_THRESHOLD_FULL:
+        break;
+
+      default:
+        break;
+    }
+  }
+
+  /* Memory Data size equal to Half-Word */
+  else if (hdma->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD)
+  {
+    switch (hdma->Init.FIFOThreshold)
+    {
+      case DMA_FIFO_THRESHOLD_1QUARTERFULL:
+      case DMA_FIFO_THRESHOLD_3QUARTERSFULL:
+        status = HAL_ERROR;
+        break;
+
+      case DMA_FIFO_THRESHOLD_HALFFULL:
+        if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
+        {
+          status = HAL_ERROR;
+        }
+        break;
+
+      case DMA_FIFO_THRESHOLD_FULL:
+        if (hdma->Init.MemBurst == DMA_MBURST_INC16)
+        {
+          status = HAL_ERROR;
+        }
+        break;
+
+      default:
+        break;
+    }
+  }
+
+  /* Memory Data size equal to Word */
+  else
+  {
+    switch (hdma->Init.FIFOThreshold)
+    {
+      case DMA_FIFO_THRESHOLD_1QUARTERFULL:
+      case DMA_FIFO_THRESHOLD_HALFFULL:
+      case DMA_FIFO_THRESHOLD_3QUARTERSFULL:
+        status = HAL_ERROR;
+        break;
+
+      case DMA_FIFO_THRESHOLD_FULL:
+        if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
+        {
+          status = HAL_ERROR;
+        }
+    break;
+
+      default:
+        break;
+    }
+  }
+
+  return status;
+}
+
+/**
+  * @brief  Updates the DMA handle with the DMAMUX  channel and status mask depending on stream number
+  * @param  hdma:       pointer to a DMA_HandleTypeDef structure that contains
+  *                     the configuration information for the specified DMA Stream.
+  * @retval HAL status
+  */
+static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma)
+{
+  uint32_t stream_number;
+  uint32_t stream_baseaddress = (uint32_t)((uint32_t*)hdma->Instance);
+
+  if(IS_BDMA_CHANNEL_DMAMUX_INSTANCE(hdma->Instance) != 0U)
+  {
+    /* BDMA Channels are connected to DMAMUX2 channels */
+    stream_number = (((uint32_t)((uint32_t*)hdma->Instance) & 0xFFU) - 8U) / 20U;
+    hdma->DMAmuxChannel = (DMAMUX_Channel_TypeDef *)((uint32_t)(((uint32_t)DMAMUX2_Channel0) + (stream_number * 4U)));
+    hdma->DMAmuxChannelStatus = DMAMUX2_ChannelStatus;
+    hdma->DMAmuxChannelStatusMask = 1UL << (stream_number & 0x1FU);
+  }
+  else
+  {
+    /* DMA1/DMA2 Streams are connected to DMAMUX1 channels */
+    stream_number = (((uint32_t)((uint32_t*)hdma->Instance) & 0xFFU) - 16U) / 24U;
+
+    if((stream_baseaddress <= ((uint32_t)DMA2_Stream7) ) && \
+       (stream_baseaddress >= ((uint32_t)DMA2_Stream0)))
+    {
+      stream_number += 8U;
+    }
+    hdma->DMAmuxChannel = (DMAMUX_Channel_TypeDef *)((uint32_t)(((uint32_t)DMAMUX1_Channel0) + (stream_number * 4U)));
+    hdma->DMAmuxChannelStatus = DMAMUX1_ChannelStatus;
+    hdma->DMAmuxChannelStatusMask = 1UL << (stream_number & 0x1FU);
+  }
+}
+
+/**
+  * @brief  Updates the DMA handle with the DMAMUX  request generator params
+  * @param  hdma:       pointer to a DMA_HandleTypeDef structure that contains
+  *                     the configuration information for the specified DMA Stream.
+  * @retval HAL status
+  */
+static void DMA_CalcDMAMUXRequestGenBaseAndMask(DMA_HandleTypeDef *hdma)
+{
+  uint32_t request =  hdma->Init.Request & DMAMUX_CxCR_DMAREQ_ID;
+
+  if((request >= DMA_REQUEST_GENERATOR0) && (request <= DMA_REQUEST_GENERATOR7))
+  {
+    if(IS_BDMA_CHANNEL_DMAMUX_INSTANCE(hdma->Instance) != 0U)
+    {
+      /* BDMA Channels are connected to DMAMUX2 request generator blocks */
+      hdma->DMAmuxRequestGen = (DMAMUX_RequestGen_TypeDef *)((uint32_t)(((uint32_t)DMAMUX2_RequestGenerator0) + ((request - 1U) * 4U)));
+
+      hdma->DMAmuxRequestGenStatus = DMAMUX2_RequestGenStatus;
+    }
+    else
+    {
+      /* DMA1 and DMA2 Streams use DMAMUX1 request generator blocks */
+      hdma->DMAmuxRequestGen = (DMAMUX_RequestGen_TypeDef *)((uint32_t)(((uint32_t)DMAMUX1_RequestGenerator0) + ((request - 1U) * 4U)));
+
+      hdma->DMAmuxRequestGenStatus = DMAMUX1_RequestGenStatus;
+    }
+
+    hdma->DMAmuxRequestGenStatusMask = 1UL << (request - 1U);
+  }
+}
+
+/**
+  * @}
+  */
+
+#endif /* HAL_DMA_MODULE_ENABLED */
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
Index: /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c
===================================================================
--- /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c	(revision 45)
+++ /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c	(revision 45)
@@ -0,0 +1,555 @@
+/**
+  ******************************************************************************
+  * @file    stm32h7xx_hal_gpio.c
+  * @author  MCD Application Team
+  * @brief   GPIO HAL module driver.
+  *          This file provides firmware functions to manage the following
+  *          functionalities of the General Purpose Input/Output (GPIO) peripheral:
+  *           + 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 #####
+  ==============================================================================
+  [..]
+    (+) Each port bit of the general-purpose I/O (GPIO) ports can be individually
+        configured by software in several modes:
+        (++) Input mode
+        (++) Analog mode
+        (++) Output mode
+        (++) Alternate function mode
+        (++) External interrupt/event lines
+
+    (+) During and just after reset, the alternate functions and external interrupt
+        lines are not active and the I/O ports are configured in input floating mode.
+
+    (+) All GPIO pins have weak internal pull-up and pull-down resistors, which can be
+        activated or not.
+
+    (+) In Output or Alternate mode, each IO can be configured on open-drain or push-pull
+        type and the IO speed can be selected depending on the VDD value.
+
+    (+) The microcontroller IO pins are connected to onboard peripherals/modules through a
+        multiplexer that allows only one peripheral alternate function (AF) connected
+       to an IO pin at a time. In this way, there can be no conflict between peripherals
+       sharing the same IO pin.
+
+    (+) All ports have external interrupt/event capability. To use external interrupt
+        lines, the port must be configured in input mode. All available GPIO pins are
+        connected to the 16 external interrupt/event lines from EXTI0 to EXTI15.
+
+  The external interrupt/event controller consists of up to 23 edge detectors
+        (16 lines are connected to GPIO) for generating event/interrupt requests (each
+        input line can be independently configured to select the type (interrupt or event)
+        and the corresponding trigger event (rising or falling or both). Each line can
+        also be masked independently.
+
+                     ##### How to use this driver #####
+  ==============================================================================
+  [..]
+    (#) Enable the GPIO AHB clock using the following function: __HAL_RCC_GPIOx_CLK_ENABLE().
+
+    (#) Configure the GPIO pin(s) using HAL_GPIO_Init().
+        (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure
+        (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef
+             structure.
+        (++) In case of Output or alternate function mode selection: the speed is
+             configured through "Speed" member from GPIO_InitTypeDef structure.
+        (++) In alternate mode is selection, the alternate function connected to the IO
+             is configured through "Alternate" member from GPIO_InitTypeDef structure.
+        (++) Analog mode is required when a pin is to be used as ADC channel
+             or DAC output.
+        (++) In case of external interrupt/event selection the "Mode" member from
+             GPIO_InitTypeDef structure select the type (interrupt or event) and
+             the corresponding trigger event (rising or falling or both).
+
+    (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority
+        mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using
+        HAL_NVIC_EnableIRQ().
+
+    (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin().
+
+    (#) To set/reset the level of a pin configured in output mode use
+        HAL_GPIO_WritePin()/HAL_GPIO_TogglePin().
+
+   (#) To lock pin configuration until next reset use HAL_GPIO_LockPin().
+
+
+    (#) During and just after reset, the alternate functions are not
+        active and the GPIO pins are configured in input floating mode (except JTAG
+        pins).
+
+    (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose
+        (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has
+        priority over the GPIO function.
+
+    (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as
+        general purpose PH0 and PH1, respectively, when the HSE oscillator is off.
+        The HSE has priority over the GPIO function.
+
+  @endverbatim
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32h7xx_hal.h"
+
+/** @addtogroup STM32H7xx_HAL_Driver
+  * @{
+  */
+
+/** @defgroup GPIO  GPIO
+  * @brief GPIO HAL module driver
+  * @{
+  */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private defines ------------------------------------------------------------*/
+/** @addtogroup GPIO_Private_Constants GPIO Private Constants
+  * @{
+  */
+
+#if defined(DUAL_CORE)
+#define EXTI_CPU1             (0x01000000U)
+#define EXTI_CPU2             (0x02000000U)
+#endif /*DUAL_CORE*/
+#define GPIO_NUMBER           (16U)
+/**
+  * @}
+  */
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
+/** @defgroup GPIO_Exported_Functions GPIO Exported Functions
+  * @{
+  */
+
+/** @defgroup GPIO_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 de-initialize the GPIOs
+    to be ready for use.
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Initializes the GPIOx peripheral according to the specified parameters in the GPIO_Init.
+  * @param  GPIOx: where x can be (A..K) to select the GPIO peripheral.
+  * @param  GPIO_Init: pointer to a GPIO_InitTypeDef structure that contains
+  *         the configuration information for the specified GPIO peripheral.
+  * @retval None
+  */
+void HAL_GPIO_Init(GPIO_TypeDef  *GPIOx, const GPIO_InitTypeDef *GPIO_Init)
+{
+  uint32_t position = 0x00U;
+  uint32_t iocurrent;
+  uint32_t temp;
+  EXTI_Core_TypeDef *EXTI_CurrentCPU;
+
+#if defined(DUAL_CORE) && defined(CORE_CM4)
+  EXTI_CurrentCPU = EXTI_D2; /* EXTI for CM4 CPU */
+#else
+  EXTI_CurrentCPU = EXTI_D1; /* EXTI for CM7 CPU */
+#endif
+
+  /* Check the parameters */
+  assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
+  assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
+  assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
+
+  /* Configure the port pins */
+  while (((GPIO_Init->Pin) >> position) != 0x00U)
+  {
+    /* Get current io position */
+    iocurrent = (GPIO_Init->Pin) & (1UL << position);
+
+    if (iocurrent != 0x00U)
+    {
+      /*--------------------- GPIO Mode Configuration ------------------------*/
+      /* In case of Output or Alternate function mode selection */
+      if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
+      {
+        /* Check the Speed parameter */
+        assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
+
+        /* Configure the IO Speed */
+        temp = GPIOx->OSPEEDR;
+        temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
+        temp |= (GPIO_Init->Speed << (position * 2U));
+        GPIOx->OSPEEDR = temp;
+
+        /* Configure the IO Output Type */
+        temp = GPIOx->OTYPER;
+        temp &= ~(GPIO_OTYPER_OT0 << position) ;
+        temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
+        GPIOx->OTYPER = temp;
+      }
+
+      if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
+      {
+       /* Check the Pull parameter */
+       assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
+
+      /* Activate the Pull-up or Pull down resistor for the current IO */
+      temp = GPIOx->PUPDR;
+      temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
+      temp |= ((GPIO_Init->Pull) << (position * 2U));
+      GPIOx->PUPDR = temp;
+      }
+
+      /* In case of Alternate function mode selection */
+      if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
+      {
+        /* Check the Alternate function parameters */
+        assert_param(IS_GPIO_AF_INSTANCE(GPIOx));
+        assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
+
+        /* Configure Alternate function mapped with the current IO */
+        temp = GPIOx->AFR[position >> 3U];
+        temp &= ~(0xFU << ((position & 0x07U) * 4U));
+        temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U));
+        GPIOx->AFR[position >> 3U] = temp;
+      }
+
+      /* Configure IO Direction mode (Input, Output, Alternate or Analog) */
+      temp = GPIOx->MODER;
+      temp &= ~(GPIO_MODER_MODE0 << (position * 2U));
+      temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
+      GPIOx->MODER = temp;
+
+      /*--------------------- EXTI Mode Configuration ------------------------*/
+      /* Configure the External Interrupt or event for the current IO */
+      if ((GPIO_Init->Mode & EXTI_MODE) != 0x00U)
+      {
+        /* Enable SYSCFG Clock */
+        __HAL_RCC_SYSCFG_CLK_ENABLE();
+
+        temp = SYSCFG->EXTICR[position >> 2U];
+        temp &= ~(0x0FUL << (4U * (position & 0x03U)));
+        temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
+        SYSCFG->EXTICR[position >> 2U] = temp;
+
+        /* Clear Rising Falling edge configuration */
+        temp = EXTI->RTSR1;
+        temp &= ~(iocurrent);
+        if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U)
+        {
+          temp |= iocurrent;
+        }
+        EXTI->RTSR1 = temp;
+
+        temp = EXTI->FTSR1;
+        temp &= ~(iocurrent);
+        if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U)
+        {
+          temp |= iocurrent;
+        }
+        EXTI->FTSR1 = temp;
+
+        temp = EXTI_CurrentCPU->EMR1;
+        temp &= ~(iocurrent);
+        if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U)
+        {
+          temp |= iocurrent;
+        }
+        EXTI_CurrentCPU->EMR1 = temp;
+
+        /* Clear EXTI line configuration */
+        temp = EXTI_CurrentCPU->IMR1;
+        temp &= ~(iocurrent);
+        if ((GPIO_Init->Mode & EXTI_IT) != 0x00U)
+        {
+          temp |= iocurrent;
+        }
+        EXTI_CurrentCPU->IMR1 = temp;
+      }
+    }
+
+    position++;
+  }
+}
+
+/**
+  * @brief  De-initializes the GPIOx peripheral registers to their default reset values.
+  * @param  GPIOx: where x can be (A..K) to select the GPIO peripheral.
+  * @param  GPIO_Pin: specifies the port bit to be written.
+  *          This parameter can be one of GPIO_PIN_x where x can be (0..15).
+  * @retval None
+  */
+void HAL_GPIO_DeInit(GPIO_TypeDef  *GPIOx, uint32_t GPIO_Pin)
+{
+  uint32_t position = 0x00U;
+  uint32_t iocurrent;
+  uint32_t tmp;
+  EXTI_Core_TypeDef *EXTI_CurrentCPU;
+
+#if defined(DUAL_CORE) && defined(CORE_CM4)
+  EXTI_CurrentCPU = EXTI_D2; /* EXTI for CM4 CPU */
+#else
+  EXTI_CurrentCPU = EXTI_D1; /* EXTI for CM7 CPU */
+#endif
+
+  /* Check the parameters */
+  assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
+  assert_param(IS_GPIO_PIN(GPIO_Pin));
+
+  /* Configure the port pins */
+  while ((GPIO_Pin >> position) != 0x00U)
+  {
+    /* Get current io position */
+    iocurrent = GPIO_Pin & (1UL << position) ;
+
+    if (iocurrent != 0x00U)
+    {
+      /*------------------------- EXTI Mode Configuration --------------------*/
+      /* Clear the External Interrupt or Event for the current IO */
+      tmp = SYSCFG->EXTICR[position >> 2U];
+      tmp &= (0x0FUL << (4U * (position & 0x03U)));
+      if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
+      {
+        /* Clear EXTI line configuration for Current CPU */
+        EXTI_CurrentCPU->IMR1 &= ~(iocurrent);
+        EXTI_CurrentCPU->EMR1 &= ~(iocurrent);
+
+        /* Clear Rising Falling edge configuration */
+        EXTI->FTSR1 &= ~(iocurrent);
+        EXTI->RTSR1 &= ~(iocurrent);
+
+        tmp = 0x0FUL << (4U * (position & 0x03U));
+        SYSCFG->EXTICR[position >> 2U] &= ~tmp;
+      }
+
+      /*------------------------- GPIO Mode Configuration --------------------*/
+      /* Configure IO in Analog Mode */
+      GPIOx->MODER |= (GPIO_MODER_MODE0 << (position * 2U));
+
+      /* Configure the default Alternate Function in current IO */
+      GPIOx->AFR[position >> 3U] &= ~(0xFU << ((position & 0x07U) * 4U)) ;
+
+      /* Deactivate the Pull-up and Pull-down resistor for the current IO */
+      GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
+
+      /* Configure the default value IO Output Type */
+      GPIOx->OTYPER  &= ~(GPIO_OTYPER_OT0 << position) ;
+
+      /* Configure the default value for IO Speed */
+      GPIOx->OSPEEDR &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
+    }
+
+    position++;
+  }
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup GPIO_Exported_Functions_Group2 IO operation functions
+ *  @brief GPIO Read, Write, Toggle, Lock and EXTI management functions.
+ *
+@verbatim
+ ===============================================================================
+                       ##### IO operation functions #####
+ ===============================================================================
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Reads the specified input port pin.
+  * @param  GPIOx: where x can be (A..K) to select the GPIO peripheral.
+  * @param  GPIO_Pin: specifies the port bit to read.
+  *         This parameter can be GPIO_PIN_x where x can be (0..15).
+  * @retval The input port pin value.
+  */
+GPIO_PinState HAL_GPIO_ReadPin(const GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
+{
+  GPIO_PinState bitstatus;
+
+  /* Check the parameters */
+  assert_param(IS_GPIO_PIN(GPIO_Pin));
+
+  if ((GPIOx->IDR & GPIO_Pin) != 0x00U)
+  {
+    bitstatus = GPIO_PIN_SET;
+  }
+  else
+  {
+    bitstatus = GPIO_PIN_RESET;
+  }
+  return bitstatus;
+}
+
+/**
+  * @brief  Sets or clears the selected data port bit.
+  *
+  * @note   This function uses GPIOx_BSRR register to allow atomic read/modify
+  *         accesses. In this way, there is no risk of an IRQ occurring between
+  *         the read and the modify access.
+  *
+  * @param  GPIOx: where x can be (A..K) to select the GPIO peripheral.
+  * @param  GPIO_Pin: specifies the port bit to be written.
+  *          This parameter can be one of GPIO_PIN_x where x can be (0..15).
+  * @param  PinState: specifies the value to be written to the selected bit.
+  *          This parameter can be one of the GPIO_PinState enum values:
+  *            @arg GPIO_PIN_RESET: to clear the port pin
+  *            @arg GPIO_PIN_SET: to set the port pin
+  * @retval None
+  */
+void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
+{
+  /* Check the parameters */
+  assert_param(IS_GPIO_PIN(GPIO_Pin));
+  assert_param(IS_GPIO_PIN_ACTION(PinState));
+
+  if (PinState != GPIO_PIN_RESET)
+  {
+    GPIOx->BSRR = GPIO_Pin;
+  }
+  else
+  {
+    GPIOx->BSRR = (uint32_t)GPIO_Pin << GPIO_NUMBER;
+  }
+}
+
+/**
+  * @brief  Toggles the specified GPIO pins.
+  * @param  GPIOx: Where x can be (A..K) to select the GPIO peripheral.
+  * @param  GPIO_Pin: Specifies the pins to be toggled.
+  * @retval None
+  */
+void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
+{
+  uint32_t odr;
+
+  /* Check the parameters */
+  assert_param(IS_GPIO_PIN(GPIO_Pin));
+
+  /* get current Output Data Register value */
+  odr = GPIOx->ODR;
+
+  /* Set selected pins that were at low level, and reset ones that were high */
+  GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin);
+}
+
+/**
+  * @brief  Locks GPIO Pins configuration registers.
+  * @note   The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR,
+  *         GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH.
+  * @note   The configuration of the locked GPIO pins can no longer be modified
+  *         until the next reset.
+  * @param  GPIOx: where x can be (A..K) to select the GPIO peripheral for STM32H7 family
+  * @param  GPIO_Pin: specifies the port bit to be locked.
+  *         This parameter can be any combination of GPIO_PIN_x where x can be (0..15).
+  * @retval None
+  */
+HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
+{
+  __IO uint32_t tmp = GPIO_LCKR_LCKK;
+
+  /* Check the parameters */
+  assert_param(IS_GPIO_LOCK_INSTANCE(GPIOx));
+  assert_param(IS_GPIO_PIN(GPIO_Pin));
+
+  /* Apply lock key write sequence */
+  tmp |= GPIO_Pin;
+  /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
+  GPIOx->LCKR = tmp;
+  /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */
+  GPIOx->LCKR = GPIO_Pin;
+  /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
+  GPIOx->LCKR = tmp;
+  /* Read LCKK register. This read is mandatory to complete key lock sequence*/
+  tmp = GPIOx->LCKR;
+
+  /* read again in order to confirm lock is active */
+  if ((GPIOx->LCKR & GPIO_LCKR_LCKK) != 0x00U)
+  {
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Handle EXTI interrupt request.
+  * @param  GPIO_Pin: Specifies the port pin connected to corresponding EXTI line.
+  * @retval None
+  */
+void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
+{
+#if defined(DUAL_CORE) && defined(CORE_CM4)
+  if (__HAL_GPIO_EXTID2_GET_IT(GPIO_Pin) != 0x00U)
+  {
+    __HAL_GPIO_EXTID2_CLEAR_IT(GPIO_Pin);
+    HAL_GPIO_EXTI_Callback(GPIO_Pin);
+  }
+#else
+  /* EXTI line interrupt detected */
+  if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00U)
+  {
+    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
+    HAL_GPIO_EXTI_Callback(GPIO_Pin);
+  }
+#endif
+}
+
+/**
+  * @brief  EXTI line detection callback.
+  * @param  GPIO_Pin: Specifies the port pin connected to corresponding EXTI line.
+  * @retval None
+  */
+__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(GPIO_Pin);
+
+  /* NOTE: This function Should not be modified, when the callback is needed,
+           the HAL_GPIO_EXTI_Callback could be implemented in the user file
+   */
+}
+
+/**
+  * @}
+  */
+
+
+/**
+  * @}
+  */
+
+#endif /* HAL_GPIO_MODULE_ENABLED */
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
Index: /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c
===================================================================
--- /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c	(revision 45)
+++ /ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c	(revision 45)
@@ -0,0 +1,4016 @@
+/**
+  ******************************************************************************
+  * @file    stm32h7xx_hal_spi.c
+  * @author  MCD Application Team
+  * @brief   SPI HAL module driver.
+  *          This file provides firmware functions to manage the following
+  *          functionalities of the Serial Peripheral Interface (SPI) peripheral:
+  *           + Initialization and de-initialization functions
+  *           + IO operation 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
+  ==============================================================================
+                        ##### How to use this driver #####
+  ==============================================================================
+    [..]
+      The SPI HAL driver can be used as follows:
+
+      (#) Declare a SPI_HandleTypeDef handle structure, for example:
+          SPI_HandleTypeDef  hspi;
+
+      (#)Initialize the SPI low level resources by implementing the HAL_SPI_MspInit() API:
+          (##) Enable the SPIx interface clock
+          (##) SPI pins configuration
+              (+++) Enable the clock for the SPI GPIOs
+              (+++) Configure these SPI pins as alternate function push-pull
+          (##) NVIC configuration if you need to use interrupt process or DMA process
+              (+++) Configure the SPIx interrupt priority
+              (+++) Enable the NVIC SPI IRQ handle
+          (##) DMA Configuration if you need to use DMA process
+              (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive Stream/Channel
+              (+++) Enable the DMAx clock
+              (+++) Configure the DMA handle parameters
+              (+++) Configure the DMA Tx or Rx Stream/Channel
+              (+++) Associate the initialized hdma_tx handle to the hspi DMA Tx or Rx handle
+              (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on the DMA Tx
+                    or Rx Stream/Channel
+
+      (#) Program the Mode, BidirectionalMode , Data size, Baudrate Prescaler, NSS
+          management, Clock polarity and phase, FirstBit and CRC configuration in the hspi Init structure.
+
+      (#) Initialize the SPI registers by calling the HAL_SPI_Init() API:
+          (++) This API configures also the low level Hardware GPIO, CLOCK, CORTEX...etc)
+              by calling the customized HAL_SPI_MspInit() API.
+     [..]
+       Callback registration:
+
+      (#) The compilation flag USE_HAL_SPI_REGISTER_CALLBACKS when set to 1UL
+          allows the user to configure dynamically the driver callbacks.
+          Use Functions HAL_SPI_RegisterCallback() to register an interrupt callback.
+
+          Function HAL_SPI_RegisterCallback() allows to register following callbacks:
+            (+) TxCpltCallback        : SPI Tx Completed callback
+            (+) RxCpltCallback        : SPI Rx Completed callback
+            (+) TxRxCpltCallback      : SPI TxRx Completed callback
+            (+) TxHalfCpltCallback    : SPI Tx Half Completed callback
+            (+) RxHalfCpltCallback    : SPI Rx Half Completed callback
+            (+) TxRxHalfCpltCallback  : SPI TxRx Half Completed callback
+            (+) ErrorCallback         : SPI Error callback
+            (+) AbortCpltCallback     : SPI Abort callback
+            (+) SuspendCallback       : SPI Suspend callback
+            (+) MspInitCallback       : SPI Msp Init callback
+            (+) MspDeInitCallback     : SPI Msp DeInit callback
+          This function takes as parameters the HAL peripheral handle, the Callback ID
+          and a pointer to the user callback function.
+
+
+      (#) Use function HAL_SPI_UnRegisterCallback to reset a callback to the default
+          weak function.
+          HAL_SPI_UnRegisterCallback takes as parameters the HAL peripheral handle,
+          and the Callback ID.
+          This function allows to reset following callbacks:
+            (+) TxCpltCallback        : SPI Tx Completed callback
+            (+) RxCpltCallback        : SPI Rx Completed callback
+            (+) TxRxCpltCallback      : SPI TxRx Completed callback
+            (+) TxHalfCpltCallback    : SPI Tx Half Completed callback
+            (+) RxHalfCpltCallback    : SPI Rx Half Completed callback
+            (+) TxRxHalfCpltCallback  : SPI TxRx Half Completed callback
+            (+) ErrorCallback         : SPI Error callback
+            (+) AbortCpltCallback     : SPI Abort callback
+            (+) SuspendCallback       : SPI Suspend callback
+            (+) MspInitCallback       : SPI Msp Init callback
+            (+) MspDeInitCallback     : SPI Msp DeInit callback
+
+       By default, after the HAL_SPI_Init() and when the state is HAL_SPI_STATE_RESET
+       all callbacks are set to the corresponding weak functions:
+       examples HAL_SPI_MasterTxCpltCallback(), HAL_SPI_MasterRxCpltCallback().
+       Exception done for MspInit and MspDeInit functions that are
+       reset to the legacy weak functions in the HAL_SPI_Init()/ HAL_SPI_DeInit() only when
+       these callbacks are null (not registered beforehand).
+       If MspInit or MspDeInit are not null, the HAL_SPI_Init()/ HAL_SPI_DeInit()
+       keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
+
+       Callbacks can be registered/unregistered in HAL_SPI_STATE_READY state only.
+       Exception done MspInit/MspDeInit functions that can be registered/unregistered
+       in HAL_SPI_STATE_READY or HAL_SPI_STATE_RESET state,
+       thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
+       Then, the user first registers the MspInit/MspDeInit user callbacks
+       using HAL_SPI_RegisterCallback() before calling HAL_SPI_DeInit()
+       or HAL_SPI_Init() function.
+
+       When The compilation define USE_HAL_PPP_REGISTER_CALLBACKS is set to 0 or not defined,
+       the callback registering feature is not available and weak callbacks are used.
+
+       SuspendCallback restriction:
+           SuspendCallback is called only when MasterReceiverAutoSusp is enabled and
+       EOT interrupt is activated. SuspendCallback is used in relation with functions
+       HAL_SPI_Transmit_IT, HAL_SPI_Receive_IT and HAL_SPI_TransmitReceive_IT.
+
+    [..]
+      Circular mode restriction:
+      (+) The DMA circular mode cannot be used when the SPI is configured in these modes:
+          (++) Master 2Lines RxOnly
+          (++) Master 1Line Rx
+      (+) The CRC feature is not managed when the DMA circular mode is enabled
+      (+) The functions HAL_SPI_DMAPause()/ HAL_SPI_DMAResume() are not supported. Return always
+          HAL_ERROR with ErrorCode set to HAL_SPI_ERROR_NOT_SUPPORTED.
+          Those functions are maintained for backward compatibility reasons.
+
+  @endverbatim
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32h7xx_hal.h"
+
+/** @addtogroup STM32H7xx_HAL_Driver
+  * @{
+  */
+
+/** @defgroup SPI SPI
+  * @brief SPI HAL module driver
+  * @{
+  */
+#ifdef HAL_SPI_MODULE_ENABLED
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private defines -----------------------------------------------------------*/
+/** @defgroup SPI_Private_Constants SPI Private Constants
+  * @{
+  */
+#define SPI_DEFAULT_TIMEOUT 100UL
+/**
+  * @}
+  */
+
+/* Private macros ------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/** @defgroup SPI_Private_Functions SPI Private Functions
+  * @{
+  */
+static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma);
+static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma);
+static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma);
+static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma);
+static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma);
+static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma);
+static void SPI_DMAError(DMA_HandleTypeDef *hdma);
+static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma);
+static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma);
+static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma);
+static HAL_StatusTypeDef SPI_WaitOnFlagUntilTimeout(const SPI_HandleTypeDef *hspi, uint32_t Flag,
+                                                    FlagStatus FlagStatus, uint32_t Timeout, uint32_t Tickstart);
+static void SPI_TxISR_8BIT(SPI_HandleTypeDef *hspi);
+static void SPI_TxISR_16BIT(SPI_HandleTypeDef *hspi);
+static void SPI_TxISR_32BIT(SPI_HandleTypeDef *hspi);
+static void SPI_RxISR_8BIT(SPI_HandleTypeDef *hspi);
+static void SPI_RxISR_16BIT(SPI_HandleTypeDef *hspi);
+static void SPI_RxISR_32BIT(SPI_HandleTypeDef *hspi);
+static void SPI_AbortTransfer(SPI_HandleTypeDef *hspi);
+static void SPI_CloseTransfer(SPI_HandleTypeDef *hspi);
+static uint32_t SPI_GetPacketSize(const SPI_HandleTypeDef *hspi);
+
+
+/**
+  * @}
+  */
+
+/* Exported functions --------------------------------------------------------*/
+/** @defgroup SPI_Exported_Functions SPI Exported Functions
+  * @{
+  */
+
+/** @defgroup SPI_Exported_Functions_Group1 Initialization and de-initialization functions
+  *  @brief    Initialization and Configuration functions
+  *
+@verbatim
+ ===============================================================================
+              ##### Initialization and de-initialization functions #####
+ ===============================================================================
+    [..]  This subsection provides a set of functions allowing to initialize and
+          de-initialize the SPIx peripheral:
+
+      (+) User must implement HAL_SPI_MspInit() function in which he configures
+          all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
+
+      (+) Call the function HAL_SPI_Init() to configure the selected device with
+          the selected configuration:
+        (++) Mode
+        (++) Direction
+        (++) Data Size
+        (++) Clock Polarity and Phase
+        (++) NSS Management
+        (++) BaudRate Prescaler
+        (++) FirstBit
+        (++) TIMode
+        (++) CRC Calculation
+        (++) CRC Polynomial if CRC enabled
+        (++) CRC Length, used only with Data8 and Data16
+        (++) FIFO reception threshold
+        (++) FIFO transmission threshold
+
+      (+) Call the function HAL_SPI_DeInit() to restore the default configuration
+          of the selected SPIx peripheral.
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Initialize the SPI according to the specified parameters
+  *         in the SPI_InitTypeDef and initialize the associated handle.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi)
+{
+  uint32_t crc_length;
+  uint32_t packet_length;
+#if (USE_SPI_CRC != 0UL)
+  uint32_t crc_poly_msb_mask;
+#endif /* USE_SPI_CRC */
+
+  /* Check the SPI handle allocation */
+  if (hspi == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Check the parameters */
+  assert_param(IS_SPI_ALL_INSTANCE(hspi->Instance));
+  assert_param(IS_SPI_MODE(hspi->Init.Mode));
+  assert_param(IS_SPI_DIRECTION(hspi->Init.Direction));
+  assert_param(IS_SPI_DATASIZE(hspi->Init.DataSize));
+  assert_param(IS_SPI_FIFOTHRESHOLD(hspi->Init.FifoThreshold));
+  assert_param(IS_SPI_NSS(hspi->Init.NSS));
+  assert_param(IS_SPI_NSSP(hspi->Init.NSSPMode));
+  assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler));
+  assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit));
+  assert_param(IS_SPI_TIMODE(hspi->Init.TIMode));
+  if (hspi->Init.TIMode == SPI_TIMODE_DISABLE)
+  {
+    assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity));
+    assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase));
+  }
+#if (USE_SPI_CRC != 0UL)
+  assert_param(IS_SPI_CRC_CALCULATION(hspi->Init.CRCCalculation));
+  if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)
+  {
+    assert_param(IS_SPI_CRC_LENGTH(hspi->Init.CRCLength));
+    assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial));
+    assert_param(IS_SPI_CRC_INITIALIZATION_PATTERN(hspi->Init.TxCRCInitializationPattern));
+    assert_param(IS_SPI_CRC_INITIALIZATION_PATTERN(hspi->Init.RxCRCInitializationPattern));
+  }
+#else
+  hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+#endif /* USE_SPI_CRC */
+
+  /* Verify that the SPI instance supports Data Size higher than 16bits */
+  if ((!IS_SPI_HIGHEND_INSTANCE(hspi->Instance)) && (hspi->Init.DataSize > SPI_DATASIZE_16BIT))
+  {
+    return HAL_ERROR;
+  }
+
+  /* Verify that the SPI instance supports requested data packing */
+  packet_length = SPI_GetPacketSize(hspi);
+  if (((!IS_SPI_HIGHEND_INSTANCE(hspi->Instance)) && (packet_length > SPI_LOWEND_FIFO_SIZE)) ||
+      ((IS_SPI_HIGHEND_INSTANCE(hspi->Instance)) && (packet_length > SPI_HIGHEND_FIFO_SIZE)))
+  {
+    return HAL_ERROR;
+  }
+
+#if (USE_SPI_CRC != 0UL)
+  if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)
+  {
+    /* Verify that the SPI instance supports CRC Length higher than 16bits */
+    if ((!IS_SPI_HIGHEND_INSTANCE(hspi->Instance)) && (hspi->Init.CRCLength > SPI_CRC_LENGTH_16BIT))
+    {
+      return HAL_ERROR;
+    }
+
+    /* Align the CRC Length on the data size */
+    if (hspi->Init.CRCLength == SPI_CRC_LENGTH_DATASIZE)
+    {
+      crc_length = (hspi->Init.DataSize >> SPI_CFG1_DSIZE_Pos) << SPI_CFG1_CRCSIZE_Pos;
+    }
+    else
+    {
+      crc_length = hspi->Init.CRCLength;
+    }
+
+    /* Verify the correctness of polynom size */
+    assert_param(IS_SPI_CRC_POLYNOMIAL_SIZE(hspi->Init.CRCPolynomial, crc_length));
+
+    /* Verify that the CRC Length is higher than DataSize */
+    if ((hspi->Init.DataSize >> SPI_CFG1_DSIZE_Pos) > (crc_length >> SPI_CFG1_CRCSIZE_Pos))
+    {
+      return HAL_ERROR;
+    }
+  }
+  else
+  {
+    crc_length = hspi->Init.DataSize << SPI_CFG1_CRCSIZE_Pos;
+  }
+#endif /* USE_SPI_CRC */
+
+  if (hspi->State == HAL_SPI_STATE_RESET)
+  {
+    /* Allocate lock resource and initialize it */
+    hspi->Lock = HAL_UNLOCKED;
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+    /* Init the SPI Callback settings */
+    hspi->TxCpltCallback       = HAL_SPI_TxCpltCallback;       /* Legacy weak TxCpltCallback       */
+    hspi->RxCpltCallback       = HAL_SPI_RxCpltCallback;       /* Legacy weak RxCpltCallback       */
+    hspi->TxRxCpltCallback     = HAL_SPI_TxRxCpltCallback;     /* Legacy weak TxRxCpltCallback     */
+    hspi->TxHalfCpltCallback   = HAL_SPI_TxHalfCpltCallback;   /* Legacy weak TxHalfCpltCallback   */
+    hspi->RxHalfCpltCallback   = HAL_SPI_RxHalfCpltCallback;   /* Legacy weak RxHalfCpltCallback   */
+    hspi->TxRxHalfCpltCallback = HAL_SPI_TxRxHalfCpltCallback; /* Legacy weak TxRxHalfCpltCallback */
+    hspi->ErrorCallback        = HAL_SPI_ErrorCallback;        /* Legacy weak ErrorCallback        */
+    hspi->AbortCpltCallback    = HAL_SPI_AbortCpltCallback;    /* Legacy weak AbortCpltCallback    */
+    hspi->SuspendCallback      = HAL_SPI_SuspendCallback;      /* Legacy weak SuspendCallback      */
+
+    if (hspi->MspInitCallback == NULL)
+    {
+      hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit  */
+    }
+
+    /* Init the low level hardware : GPIO, CLOCK, NVIC... */
+    hspi->MspInitCallback(hspi);
+#else
+    /* Init the low level hardware : GPIO, CLOCK, NVIC... */
+    HAL_SPI_MspInit(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+  }
+
+  hspi->State = HAL_SPI_STATE_BUSY;
+
+  /* Disable the selected SPI peripheral */
+  __HAL_SPI_DISABLE(hspi);
+
+#if (USE_SPI_CRC == 0)
+  /* Keep the default value of CRCSIZE in case of CRC is not used */
+  crc_length = hspi->Instance->CFG1 & SPI_CFG1_CRCSIZE;
+#endif /* USE_SPI_CRC */
+
+  /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/
+  /* Configure : SPI Mode, Communication Mode, Clock polarity and phase, NSS management,
+  Communication speed, First bit, CRC calculation state, CRC Length */
+
+  /* SPIx NSS Software Management Configuration */
+  if ((hspi->Init.NSS == SPI_NSS_SOFT) && (((hspi->Init.Mode == SPI_MODE_MASTER) &&  \
+                                            (hspi->Init.NSSPolarity == SPI_NSS_POLARITY_LOW)) || \
+                                           ((hspi->Init.Mode == SPI_MODE_SLAVE) && \
+                                            (hspi->Init.NSSPolarity == SPI_NSS_POLARITY_HIGH))))
+  {
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_SSI);
+  }
+
+  /* SPIx Master Rx Auto Suspend Configuration */
+  if (((hspi->Init.Mode & SPI_MODE_MASTER) == SPI_MODE_MASTER) && (hspi->Init.DataSize >= SPI_DATASIZE_8BIT))
+  {
+    MODIFY_REG(hspi->Instance->CR1, SPI_CR1_MASRX, hspi->Init.MasterReceiverAutoSusp);
+  }
+  else
+  {
+    CLEAR_BIT(hspi->Instance->CR1, SPI_CR1_MASRX);
+  }
+
+  /* SPIx CFG1 Configuration */
+  WRITE_REG(hspi->Instance->CFG1, (hspi->Init.BaudRatePrescaler | hspi->Init.CRCCalculation | crc_length |
+                                   hspi->Init.FifoThreshold     | hspi->Init.DataSize));
+
+  /* SPIx CFG2 Configuration */
+  WRITE_REG(hspi->Instance->CFG2, (hspi->Init.NSSPMode                | hspi->Init.TIMode    |
+                                   hspi->Init.NSSPolarity             | hspi->Init.NSS       |
+                                   hspi->Init.CLKPolarity             | hspi->Init.CLKPhase  |
+                                   hspi->Init.FirstBit                | hspi->Init.Mode      |
+                                   hspi->Init.MasterInterDataIdleness | hspi->Init.Direction |
+                                   hspi->Init.MasterSSIdleness        | hspi->Init.IOSwap));
+
+#if (USE_SPI_CRC != 0UL)
+  /*---------------------------- SPIx CRCPOLY Configuration ------------------*/
+  /* Configure : CRC Polynomial */
+  if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)
+  {
+    /* Initialize TXCRC Pattern Initial Value */
+    if (hspi->Init.TxCRCInitializationPattern == SPI_CRC_INITIALIZATION_ALL_ONE_PATTERN)
+    {
+      SET_BIT(hspi->Instance->CR1, SPI_CR1_TCRCINI);
+    }
+    else
+    {
+      CLEAR_BIT(hspi->Instance->CR1, SPI_CR1_TCRCINI);
+    }
+
+    /* Initialize RXCRC Pattern Initial Value */
+    if (hspi->Init.RxCRCInitializationPattern == SPI_CRC_INITIALIZATION_ALL_ONE_PATTERN)
+    {
+      SET_BIT(hspi->Instance->CR1, SPI_CR1_RCRCINI);
+    }
+    else
+    {
+      CLEAR_BIT(hspi->Instance->CR1, SPI_CR1_RCRCINI);
+    }
+
+    /* Enable 33/17 bits CRC computation */
+    if (((!IS_SPI_HIGHEND_INSTANCE(hspi->Instance)) && (crc_length == SPI_CRC_LENGTH_16BIT)) ||
+        ((IS_SPI_HIGHEND_INSTANCE(hspi->Instance))  && (crc_length == SPI_CRC_LENGTH_32BIT)))
+    {
+      /* Set SPI_CR1_CRC33_17 bit */
+      SET_BIT(hspi->Instance->CR1, SPI_CR1_CRC33_17);
+      /* Write CRC polynomial in SPI Register */
+      WRITE_REG(hspi->Instance->CRCPOLY, hspi->Init.CRCPolynomial);
+    }
+    else
+    {
+      /* Clear SPI_CR1_CRC33_17 bit */
+      CLEAR_BIT(hspi->Instance->CR1, SPI_CR1_CRC33_17);
+
+      /* Write CRC polynomial and set MSB bit at 1 in SPI Register */
+      /* Set MSB is mandatory for a correct CRC computation        */
+      crc_poly_msb_mask = (0x1UL << ((crc_length >> SPI_CFG1_CRCSIZE_Pos) + 0x1U));
+      WRITE_REG(hspi->Instance->CRCPOLY, (hspi->Init.CRCPolynomial) | crc_poly_msb_mask);
+    }
+  }
+#endif /* USE_SPI_CRC */
+
+  /* Insure that Underrun configuration is managed only by Salve */
+  if (hspi->Init.Mode == SPI_MODE_SLAVE)
+  {
+    /* Set Default Underrun configuration */
+#if (USE_SPI_CRC != 0UL)
+    if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_DISABLE)
+#endif /* USE_SPI_CRC */
+    {
+      MODIFY_REG(hspi->Instance->CFG1, SPI_CFG1_UDRDET, SPI_CFG1_UDRDET_0);
+    }
+    MODIFY_REG(hspi->Instance->CFG1, SPI_CFG1_UDRCFG, SPI_CFG1_UDRCFG_1);
+  }
+
+#if defined(SPI_I2SCFGR_I2SMOD)
+  /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */
+  CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD);
+#endif /* SPI_I2SCFGR_I2SMOD */
+
+  /* Insure that AFCNTR is managed only by Master */
+  if ((hspi->Init.Mode & SPI_MODE_MASTER) == SPI_MODE_MASTER)
+  {
+    /* Alternate function GPIOs control */
+    MODIFY_REG(hspi->Instance->CFG2, SPI_CFG2_AFCNTR, (hspi->Init.MasterKeepIOState));
+  }
+
+  hspi->ErrorCode = HAL_SPI_ERROR_NONE;
+  hspi->State     = HAL_SPI_STATE_READY;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  De-Initialize the SPI peripheral.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi)
+{
+  /* Check the SPI handle allocation */
+  if (hspi == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Check SPI Instance parameter */
+  assert_param(IS_SPI_ALL_INSTANCE(hspi->Instance));
+
+  hspi->State = HAL_SPI_STATE_BUSY;
+
+  /* Disable the SPI Peripheral Clock */
+  __HAL_SPI_DISABLE(hspi);
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+  if (hspi->MspDeInitCallback == NULL)
+  {
+    hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit  */
+  }
+
+  /* DeInit the low level hardware: GPIO, CLOCK, NVIC... */
+  hspi->MspDeInitCallback(hspi);
+#else
+  /* DeInit the low level hardware: GPIO, CLOCK, NVIC... */
+  HAL_SPI_MspDeInit(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+
+  hspi->ErrorCode = HAL_SPI_ERROR_NONE;
+  hspi->State = HAL_SPI_STATE_RESET;
+
+  /* Release Lock */
+  __HAL_UNLOCK(hspi);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Initialize the SPI MSP.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_MspInit should be implemented in the user file
+   */
+}
+
+/**
+  * @brief  De-Initialize the SPI MSP.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_MspDeInit should be implemented in the user file
+   */
+}
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+/**
+  * @brief  Register a User SPI Callback
+  *         To be used instead of the weak predefined callback
+  * @param  hspi Pointer to a SPI_HandleTypeDef structure that contains
+  *                the configuration information for the specified SPI.
+  * @param  CallbackID ID of the callback to be registered
+  * @param  pCallback pointer to the Callback function
+  * @note   The HAL_SPI_RegisterCallback() may be called before HAL_SPI_Init() in HAL_SPI_STATE_RESET
+  *         to register callbacks for HAL_SPI_MSPINIT_CB_ID and HAL_SPI_MSPDEINIT_CB_ID
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_RegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID,
+                                           pSPI_CallbackTypeDef pCallback)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  if (pCallback == NULL)
+  {
+    /* Update the error code */
+    hspi->ErrorCode |= HAL_SPI_ERROR_INVALID_CALLBACK;
+
+    return HAL_ERROR;
+  }
+
+  if (HAL_SPI_STATE_READY == hspi->State)
+  {
+    switch (CallbackID)
+    {
+      case HAL_SPI_TX_COMPLETE_CB_ID :
+        hspi->TxCpltCallback = pCallback;
+        break;
+
+      case HAL_SPI_RX_COMPLETE_CB_ID :
+        hspi->RxCpltCallback = pCallback;
+        break;
+
+      case HAL_SPI_TX_RX_COMPLETE_CB_ID :
+        hspi->TxRxCpltCallback = pCallback;
+        break;
+
+      case HAL_SPI_TX_HALF_COMPLETE_CB_ID :
+        hspi->TxHalfCpltCallback = pCallback;
+        break;
+
+      case HAL_SPI_RX_HALF_COMPLETE_CB_ID :
+        hspi->RxHalfCpltCallback = pCallback;
+        break;
+
+      case HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID :
+        hspi->TxRxHalfCpltCallback = pCallback;
+        break;
+
+      case HAL_SPI_ERROR_CB_ID :
+        hspi->ErrorCallback = pCallback;
+        break;
+
+      case HAL_SPI_ABORT_CB_ID :
+        hspi->AbortCpltCallback = pCallback;
+        break;
+
+      case HAL_SPI_SUSPEND_CB_ID :
+        hspi->SuspendCallback = pCallback;
+        break;
+
+      case HAL_SPI_MSPINIT_CB_ID :
+        hspi->MspInitCallback = pCallback;
+        break;
+
+      case HAL_SPI_MSPDEINIT_CB_ID :
+        hspi->MspDeInitCallback = pCallback;
+        break;
+
+      default :
+        /* Update the error code */
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK);
+
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
+    }
+  }
+  else if (HAL_SPI_STATE_RESET == hspi->State)
+  {
+    switch (CallbackID)
+    {
+      case HAL_SPI_MSPINIT_CB_ID :
+        hspi->MspInitCallback = pCallback;
+        break;
+
+      case HAL_SPI_MSPDEINIT_CB_ID :
+        hspi->MspDeInitCallback = pCallback;
+        break;
+
+      default :
+        /* Update the error code */
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK);
+
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
+    }
+  }
+  else
+  {
+    /* Update the error code */
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK);
+
+    /* Return error status */
+    status =  HAL_ERROR;
+  }
+
+  return status;
+}
+
+/**
+  * @brief  Unregister an SPI Callback
+  *         SPI callback is redirected to the weak predefined callback
+  * @param  hspi Pointer to a SPI_HandleTypeDef structure that contains
+  *                the configuration information for the specified SPI.
+  * @param  CallbackID ID of the callback to be unregistered
+  * @note   The HAL_SPI_UnRegisterCallback() may be called before HAL_SPI_Init() in HAL_SPI_STATE_RESET
+  *         to un-register callbacks for HAL_SPI_MSPINIT_CB_ID and HAL_SPI_MSPDEINIT_CB_ID
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_UnRegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  if (HAL_SPI_STATE_READY == hspi->State)
+  {
+    switch (CallbackID)
+    {
+      case HAL_SPI_TX_COMPLETE_CB_ID :
+        hspi->TxCpltCallback = HAL_SPI_TxCpltCallback;             /* Legacy weak TxCpltCallback       */
+        break;
+
+      case HAL_SPI_RX_COMPLETE_CB_ID :
+        hspi->RxCpltCallback = HAL_SPI_RxCpltCallback;             /* Legacy weak RxCpltCallback       */
+        break;
+
+      case HAL_SPI_TX_RX_COMPLETE_CB_ID :
+        hspi->TxRxCpltCallback = HAL_SPI_TxRxCpltCallback;         /* Legacy weak TxRxCpltCallback     */
+        break;
+
+      case HAL_SPI_TX_HALF_COMPLETE_CB_ID :
+        hspi->TxHalfCpltCallback = HAL_SPI_TxHalfCpltCallback;     /* Legacy weak TxHalfCpltCallback   */
+        break;
+
+      case HAL_SPI_RX_HALF_COMPLETE_CB_ID :
+        hspi->RxHalfCpltCallback = HAL_SPI_RxHalfCpltCallback;     /* Legacy weak RxHalfCpltCallback   */
+        break;
+
+      case HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID :
+        hspi->TxRxHalfCpltCallback = HAL_SPI_TxRxHalfCpltCallback; /* Legacy weak TxRxHalfCpltCallback */
+        break;
+
+      case HAL_SPI_ERROR_CB_ID :
+        hspi->ErrorCallback = HAL_SPI_ErrorCallback;               /* Legacy weak ErrorCallback        */
+        break;
+
+      case HAL_SPI_ABORT_CB_ID :
+        hspi->AbortCpltCallback = HAL_SPI_AbortCpltCallback;       /* Legacy weak AbortCpltCallback    */
+        break;
+
+      case HAL_SPI_SUSPEND_CB_ID :
+        hspi->SuspendCallback = HAL_SPI_SuspendCallback;           /* Legacy weak SuspendCallback      */
+        break;
+
+      case HAL_SPI_MSPINIT_CB_ID :
+        hspi->MspInitCallback = HAL_SPI_MspInit;                   /* Legacy weak MspInit              */
+        break;
+
+      case HAL_SPI_MSPDEINIT_CB_ID :
+        hspi->MspDeInitCallback = HAL_SPI_MspDeInit;               /* Legacy weak MspDeInit            */
+        break;
+
+      default :
+        /* Update the error code */
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK);
+
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
+    }
+  }
+  else if (HAL_SPI_STATE_RESET == hspi->State)
+  {
+    switch (CallbackID)
+    {
+      case HAL_SPI_MSPINIT_CB_ID :
+        hspi->MspInitCallback = HAL_SPI_MspInit;                   /* Legacy weak MspInit              */
+        break;
+
+      case HAL_SPI_MSPDEINIT_CB_ID :
+        hspi->MspDeInitCallback = HAL_SPI_MspDeInit;               /* Legacy weak MspDeInit            */
+        break;
+
+      default :
+        /* Update the error code */
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK);
+
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
+    }
+  }
+  else
+  {
+    /* Update the error code */
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK);
+
+    /* Return error status */
+    status =  HAL_ERROR;
+  }
+
+  return status;
+}
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Exported_Functions_Group2 IO operation functions
+  *  @brief   Data transfers functions
+  *
+@verbatim
+  ==============================================================================
+                      ##### IO operation functions #####
+ ===============================================================================
+ [..]
+    This subsection provides a set of functions allowing to manage the SPI
+    data transfers.
+
+    [..] The SPI supports master and slave mode :
+
+    (#) There are two modes of transfer:
+       (##) Blocking mode: The communication is performed in polling mode.
+            The HAL status of all data processing is returned by the same function
+            after finishing transfer.
+       (##) No-Blocking mode: The communication is performed using Interrupts
+            or DMA, These APIs return the HAL status.
+            The end of the data processing will be indicated through the
+            dedicated SPI IRQ when using Interrupt mode or the DMA IRQ when
+            using DMA mode.
+            The HAL_SPI_TxCpltCallback(), HAL_SPI_RxCpltCallback() and HAL_SPI_TxRxCpltCallback() user callbacks
+            will be executed respectively at the end of the transmit or Receive process
+            The HAL_SPI_ErrorCallback()user callback will be executed when a communication error is detected
+
+    (#) APIs provided for these 2 transfer modes (Blocking mode or Non blocking mode using either Interrupt or DMA)
+        exist for 1Line (simplex) and 2Lines (full duplex) modes.
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Transmit an amount of data in blocking mode.
+  * @param  hspi   : pointer to a SPI_HandleTypeDef structure that contains
+  *                  the configuration information for SPI module.
+  * @param  pData  : pointer to data buffer
+  * @param  Size   : amount of data to be sent
+  * @param  Timeout: Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
+{
+#if defined (__GNUC__)
+  __IO uint16_t *ptxdr_16bits = (__IO uint16_t *)(&(hspi->Instance->TXDR));
+#endif /* __GNUC__ */
+
+  uint32_t tickstart;
+
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE_2LINES_TXONLY(hspi->Init.Direction));
+
+  /* Init tickstart for timeout management*/
+  tickstart = HAL_GetTick();
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    return HAL_BUSY;
+  }
+
+  if ((pData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_TX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pTxBuffPtr  = (const uint8_t *)pData;
+  hspi->TxXferSize  = Size;
+  hspi->TxXferCount = Size;
+
+  /*Init field not used in handle to zero */
+  hspi->pRxBuffPtr  = NULL;
+  hspi->RxXferSize  = (uint16_t) 0UL;
+  hspi->RxXferCount = (uint16_t) 0UL;
+  hspi->TxISR       = NULL;
+  hspi->RxISR       = NULL;
+
+  /* Configure communication direction : 1Line */
+  if (hspi->Init.Direction == SPI_DIRECTION_1LINE)
+  {
+    SPI_1LINE_TX(hspi);
+  }
+  else
+  {
+    SPI_2LINES_TX(hspi);
+  }
+
+  /* Set the number of data at current transfer */
+  MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+
+  /* Enable SPI peripheral */
+  __HAL_SPI_ENABLE(hspi);
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Master transfer start */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  /* Transmit data in 32 Bit mode */
+  if (hspi->Init.DataSize > SPI_DATASIZE_16BIT)
+  {
+    /* Transmit data in 32 Bit mode */
+    while (hspi->TxXferCount > 0UL)
+    {
+      /* Wait until TXP flag is set to send data */
+      if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXP))
+      {
+        *((__IO uint32_t *)&hspi->Instance->TXDR) = *((const uint32_t *)hspi->pTxBuffPtr);
+        hspi->pTxBuffPtr += sizeof(uint32_t);
+        hspi->TxXferCount--;
+      }
+      else
+      {
+        /* Timeout management */
+        if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+        {
+          /* Call standard close procedure with error check */
+          SPI_CloseTransfer(hspi);
+
+          SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+          hspi->State = HAL_SPI_STATE_READY;
+
+          /* Unlock the process */
+          __HAL_UNLOCK(hspi);
+
+          return HAL_TIMEOUT;
+        }
+      }
+    }
+  }
+  /* Transmit data in 16 Bit mode */
+  else if (hspi->Init.DataSize > SPI_DATASIZE_8BIT)
+  {
+    /* Transmit data in 16 Bit mode */
+    while (hspi->TxXferCount > 0UL)
+    {
+      /* Wait until TXP flag is set to send data */
+      if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXP))
+      {
+        if ((hspi->TxXferCount > 1UL) && (hspi->Init.FifoThreshold > SPI_FIFO_THRESHOLD_01DATA))
+        {
+          *((__IO uint32_t *)&hspi->Instance->TXDR) = *((const uint32_t *)hspi->pTxBuffPtr);
+          hspi->pTxBuffPtr += sizeof(uint32_t);
+          hspi->TxXferCount -= (uint16_t)2UL;
+        }
+        else
+        {
+#if defined (__GNUC__)
+          *ptxdr_16bits = *((const uint16_t *)hspi->pTxBuffPtr);
+#else
+          *((__IO uint16_t *)&hspi->Instance->TXDR) = *((const uint16_t *)hspi->pTxBuffPtr);
+#endif /* __GNUC__ */
+          hspi->pTxBuffPtr += sizeof(uint16_t);
+          hspi->TxXferCount--;
+        }
+      }
+      else
+      {
+        /* Timeout management */
+        if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+        {
+          /* Call standard close procedure with error check */
+          SPI_CloseTransfer(hspi);
+
+          SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+          hspi->State = HAL_SPI_STATE_READY;
+
+          /* Unlock the process */
+          __HAL_UNLOCK(hspi);
+
+          return HAL_TIMEOUT;
+        }
+      }
+    }
+  }
+  /* Transmit data in 8 Bit mode */
+  else
+  {
+    while (hspi->TxXferCount > 0UL)
+    {
+      /* Wait until TXP flag is set to send data */
+      if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXP))
+      {
+        if ((hspi->TxXferCount > 3UL) && (hspi->Init.FifoThreshold > SPI_FIFO_THRESHOLD_03DATA))
+        {
+          *((__IO uint32_t *)&hspi->Instance->TXDR) = *((const uint32_t *)hspi->pTxBuffPtr);
+          hspi->pTxBuffPtr += sizeof(uint32_t);
+          hspi->TxXferCount -= (uint16_t)4UL;
+        }
+        else if ((hspi->TxXferCount > 1UL) && (hspi->Init.FifoThreshold > SPI_FIFO_THRESHOLD_01DATA))
+        {
+#if defined (__GNUC__)
+          *ptxdr_16bits = *((const uint16_t *)hspi->pTxBuffPtr);
+#else
+          *((__IO uint16_t *)&hspi->Instance->TXDR) = *((const uint16_t *)hspi->pTxBuffPtr);
+#endif /* __GNUC__ */
+          hspi->pTxBuffPtr += sizeof(uint16_t);
+          hspi->TxXferCount -= (uint16_t)2UL;
+        }
+        else
+        {
+          *((__IO uint8_t *)&hspi->Instance->TXDR) = *((const uint8_t *)hspi->pTxBuffPtr);
+          hspi->pTxBuffPtr += sizeof(uint8_t);
+          hspi->TxXferCount--;
+        }
+      }
+      else
+      {
+        /* Timeout management */
+        if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+        {
+          /* Call standard close procedure with error check */
+          SPI_CloseTransfer(hspi);
+
+          SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+          hspi->State = HAL_SPI_STATE_READY;
+
+          /* Unlock the process */
+          __HAL_UNLOCK(hspi);
+
+          return HAL_TIMEOUT;
+        }
+      }
+    }
+  }
+
+  /* Wait for Tx (and CRC) data to be sent */
+  if (SPI_WaitOnFlagUntilTimeout(hspi, SPI_FLAG_EOT, RESET, Timeout, tickstart) != HAL_OK)
+  {
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG);
+  }
+
+  /* Call standard close procedure with error check */
+  SPI_CloseTransfer(hspi);
+
+  hspi->State = HAL_SPI_STATE_READY;
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  if (hspi->ErrorCode != HAL_SPI_ERROR_NONE)
+  {
+    return HAL_ERROR;
+  }
+  else
+  {
+    return HAL_OK;
+  }
+}
+
+/**
+  * @brief  Receive an amount of data in blocking mode.
+  * @param  hspi   : pointer to a SPI_HandleTypeDef structure that contains
+  *                  the configuration information for SPI module.
+  * @param  pData  : pointer to data buffer
+  * @param  Size   : amount of data to be received
+  * @param  Timeout: Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)
+{
+  uint32_t tickstart;
+  uint32_t temp_sr_reg;
+  uint16_t init_max_data_in_fifo;
+  init_max_data_in_fifo = (((uint16_t)(hspi->Init.FifoThreshold >> 5U) + 1U));
+#if defined (__GNUC__)
+  __IO uint16_t *prxdr_16bits = (__IO uint16_t *)(&(hspi->Instance->RXDR));
+#endif /* __GNUC__ */
+
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE_2LINES_RXONLY(hspi->Init.Direction));
+
+  /* Init tickstart for timeout management*/
+  tickstart = HAL_GetTick();
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    return HAL_BUSY;
+  }
+
+  if ((pData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_RX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pRxBuffPtr  = (uint8_t *)pData;
+  hspi->RxXferSize  = Size;
+  hspi->RxXferCount = Size;
+
+  /*Init field not used in handle to zero */
+  hspi->pTxBuffPtr  = NULL;
+  hspi->TxXferSize  = (uint16_t) 0UL;
+  hspi->TxXferCount = (uint16_t) 0UL;
+  hspi->RxISR       = NULL;
+  hspi->TxISR       = NULL;
+
+  /* Configure communication direction: 1Line */
+  if (hspi->Init.Direction == SPI_DIRECTION_1LINE)
+  {
+    SPI_1LINE_RX(hspi);
+  }
+  else
+  {
+    SPI_2LINES_RX(hspi);
+  }
+
+  /* Set the number of data at current transfer */
+  MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+
+  /* Enable SPI peripheral */
+  __HAL_SPI_ENABLE(hspi);
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Master transfer start */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  /* Receive data in 32 Bit mode */
+  if (hspi->Init.DataSize > SPI_DATASIZE_16BIT)
+  {
+    /* Transfer loop */
+    while (hspi->RxXferCount > 0UL)
+    {
+      /* Evaluate state of SR register */
+      temp_sr_reg = hspi->Instance->SR;
+
+      /* Check the RXP flag */
+      if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXP))
+      {
+        *((uint32_t *)hspi->pRxBuffPtr) = *((__IO uint32_t *)&hspi->Instance->RXDR);
+        hspi->pRxBuffPtr += sizeof(uint32_t);
+        hspi->RxXferCount--;
+      }
+      /* Check RXWNE flag if RXP cannot be reached */
+      else if ((hspi->RxXferCount < init_max_data_in_fifo) && ((temp_sr_reg & SPI_SR_RXWNE_Msk) != 0UL))
+      {
+        *((uint32_t *)hspi->pRxBuffPtr) = *((__IO uint32_t *)&hspi->Instance->RXDR);
+        hspi->pRxBuffPtr += sizeof(uint32_t);
+        hspi->RxXferCount--;
+      }
+      else
+      {
+        /* Timeout management */
+        if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+        {
+          /* Call standard close procedure with error check */
+          SPI_CloseTransfer(hspi);
+
+          SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+          hspi->State = HAL_SPI_STATE_READY;
+
+          /* Unlock the process */
+          __HAL_UNLOCK(hspi);
+
+          return HAL_TIMEOUT;
+        }
+      }
+    }
+  }
+  /* Receive data in 16 Bit mode */
+  else if (hspi->Init.DataSize > SPI_DATASIZE_8BIT)
+  {
+    /* Transfer loop */
+    while (hspi->RxXferCount > 0UL)
+    {
+      /* Evaluate state of SR register */
+      temp_sr_reg = hspi->Instance->SR;
+
+      /* Check the RXP flag */
+      if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXP))
+      {
+#if defined (__GNUC__)
+        *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+        *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+        hspi->pRxBuffPtr += sizeof(uint16_t);
+        hspi->RxXferCount--;
+      }
+      /* Check RXWNE flag if RXP cannot be reached */
+      else if ((hspi->RxXferCount < init_max_data_in_fifo) && ((temp_sr_reg & SPI_SR_RXWNE_Msk) != 0UL))
+      {
+#if defined (__GNUC__)
+        *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+        *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+        hspi->pRxBuffPtr += sizeof(uint16_t);
+#if defined (__GNUC__)
+        *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+        *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+        hspi->pRxBuffPtr += sizeof(uint16_t);
+        hspi->RxXferCount -= (uint16_t)2UL;
+      }
+      /* Check RXPLVL flags when RXWNE cannot be reached */
+      else if ((hspi->RxXferCount == 1UL) && ((temp_sr_reg & SPI_SR_RXPLVL_0) != 0UL))
+      {
+#if defined (__GNUC__)
+        *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+        *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+        hspi->pRxBuffPtr += sizeof(uint16_t);
+        hspi->RxXferCount--;
+      }
+      else
+      {
+        /* Timeout management */
+        if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+        {
+          /* Call standard close procedure with error check */
+          SPI_CloseTransfer(hspi);
+
+          SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+          hspi->State = HAL_SPI_STATE_READY;
+
+          /* Unlock the process */
+          __HAL_UNLOCK(hspi);
+
+          return HAL_TIMEOUT;
+        }
+      }
+    }
+  }
+  /* Receive data in 8 Bit mode */
+  else
+  {
+    /* Transfer loop */
+    while (hspi->RxXferCount > 0UL)
+    {
+      /* Evaluate state of SR register */
+      temp_sr_reg = hspi->Instance->SR;
+
+      /* Check the RXP flag */
+      if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXP))
+      {
+        *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+        hspi->pRxBuffPtr += sizeof(uint8_t);
+        hspi->RxXferCount--;
+      }
+      /* Check RXWNE flag if RXP cannot be reached */
+      else if ((hspi->RxXferCount < init_max_data_in_fifo) && ((temp_sr_reg & SPI_SR_RXWNE_Msk) != 0UL))
+      {
+        *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+        hspi->pRxBuffPtr += sizeof(uint8_t);
+        *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+        hspi->pRxBuffPtr += sizeof(uint8_t);
+        *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+        hspi->pRxBuffPtr += sizeof(uint8_t);
+        *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+        hspi->pRxBuffPtr += sizeof(uint8_t);
+        hspi->RxXferCount -= (uint16_t)4UL;
+      }
+      /* Check RXPLVL flags when RXWNE cannot be reached */
+      else if ((hspi->RxXferCount < 4UL) && ((temp_sr_reg & SPI_SR_RXPLVL_Msk) != 0UL))
+      {
+        *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+        hspi->pRxBuffPtr += sizeof(uint8_t);
+        hspi->RxXferCount--;
+      }
+      else
+      {
+        /* Timeout management */
+        if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+        {
+          /* Call standard close procedure with error check */
+          SPI_CloseTransfer(hspi);
+
+          SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+          hspi->State = HAL_SPI_STATE_READY;
+
+          /* Unlock the process */
+          __HAL_UNLOCK(hspi);
+
+          return HAL_TIMEOUT;
+        }
+      }
+    }
+  }
+
+#if (USE_SPI_CRC != 0UL)
+  if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)
+  {
+    /* Wait for crc data to be received */
+    if (SPI_WaitOnFlagUntilTimeout(hspi, SPI_FLAG_EOT, RESET, Timeout, tickstart) != HAL_OK)
+    {
+      SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG);
+    }
+  }
+#endif /* USE_SPI_CRC */
+
+  /* Call standard close procedure with error check */
+  SPI_CloseTransfer(hspi);
+
+  hspi->State = HAL_SPI_STATE_READY;
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+
+  if (hspi->ErrorCode != HAL_SPI_ERROR_NONE)
+  {
+    return HAL_ERROR;
+  }
+  else
+  {
+    return HAL_OK;
+  }
+}
+
+/**
+  * @brief  Transmit and Receive an amount of data in blocking mode.
+  * @param  hspi   : pointer to a SPI_HandleTypeDef structure that contains
+  *                  the configuration information for SPI module.
+  * @param  pTxData: pointer to transmission data buffer
+  * @param  pRxData: pointer to reception data buffer
+  * @param  Size   : amount of data to be sent and received
+  * @param  Timeout: Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
+                                          uint16_t Size, uint32_t Timeout)
+{
+#if defined (__GNUC__)
+  __IO uint16_t *ptxdr_16bits = (__IO uint16_t *)(&(hspi->Instance->TXDR));
+  __IO uint16_t *prxdr_16bits = (__IO uint16_t *)(&(hspi->Instance->RXDR));
+#endif /* __GNUC__ */
+
+  uint32_t   tickstart;
+  uint32_t   fifo_length;
+  uint32_t   temp_sr_reg;
+  uint16_t   initial_TxXferCount;
+  uint16_t   initial_RxXferCount;
+  uint16_t   init_max_data_in_fifo;
+  init_max_data_in_fifo = (((uint16_t)(hspi->Init.FifoThreshold >> 5U) + 1U));
+
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction));
+
+  /* Init tickstart for timeout management*/
+  tickstart = HAL_GetTick();
+
+  initial_TxXferCount = Size;
+  initial_RxXferCount = Size;
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    return HAL_BUSY;
+  }
+
+  if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_TX_RX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pRxBuffPtr  = (uint8_t *)pRxData;
+  hspi->RxXferCount = Size;
+  hspi->RxXferSize  = Size;
+  hspi->pTxBuffPtr  = (const uint8_t *)pTxData;
+  hspi->TxXferCount = Size;
+  hspi->TxXferSize  = Size;
+
+  /*Init field not used in handle to zero */
+  hspi->RxISR       = NULL;
+  hspi->TxISR       = NULL;
+
+  /* Set Full-Duplex mode */
+  SPI_2LINES(hspi);
+
+  /* Initialize FIFO length */
+  if (IS_SPI_HIGHEND_INSTANCE(hspi->Instance))
+  {
+    fifo_length = SPI_HIGHEND_FIFO_SIZE;
+  }
+  else
+  {
+    fifo_length = SPI_LOWEND_FIFO_SIZE;
+  }
+
+  /* Set the number of data at current transfer */
+  MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+
+  __HAL_SPI_ENABLE(hspi);
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Master transfer start */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  /* Transmit and Receive data in 32 Bit mode */
+  if (hspi->Init.DataSize > SPI_DATASIZE_16BIT)
+  {
+    /* Adapt fifo length to 32bits data width */
+    fifo_length = (fifo_length / 4UL);
+
+    while ((initial_TxXferCount > 0UL) || (initial_RxXferCount > 0UL))
+    {
+      /* Check TXP flag */
+      if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXP)) && (initial_TxXferCount > 0UL) &&
+          (initial_RxXferCount  < (initial_TxXferCount + fifo_length)))
+      {
+        *((__IO uint32_t *)&hspi->Instance->TXDR) = *((const uint32_t *)hspi->pTxBuffPtr);
+        hspi->pTxBuffPtr += sizeof(uint32_t);
+        hspi->TxXferCount --;
+        initial_TxXferCount = hspi->TxXferCount;
+      }
+
+      /* Evaluate state of SR register */
+      temp_sr_reg = hspi->Instance->SR;
+
+      if (initial_RxXferCount > 0UL)
+      {
+        /* Check the RXP flag */
+        if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXP))
+        {
+          *((uint32_t *)hspi->pRxBuffPtr) = *((__IO uint32_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint32_t);
+          hspi->RxXferCount--;
+          initial_RxXferCount = hspi->RxXferCount;
+        }
+        /* Check RXWNE flag if RXP cannot be reached */
+        else if ((initial_RxXferCount < init_max_data_in_fifo) && ((temp_sr_reg & SPI_SR_RXWNE_Msk) != 0UL))
+        {
+          *((uint32_t *)hspi->pRxBuffPtr) = *((__IO uint32_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint32_t);
+          hspi->RxXferCount--;
+          initial_RxXferCount = hspi->RxXferCount;
+        }
+        else
+        {
+          /* Timeout management */
+          if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+          {
+            /* Call standard close procedure with error check */
+            SPI_CloseTransfer(hspi);
+
+            SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+            hspi->State = HAL_SPI_STATE_READY;
+
+            /* Unlock the process */
+            __HAL_UNLOCK(hspi);
+
+            return HAL_TIMEOUT;
+          }
+        }
+      }
+    }
+  }
+  /* Transmit and Receive data in 16 Bit mode */
+  else if (hspi->Init.DataSize > SPI_DATASIZE_8BIT)
+  {
+    /* Adapt fifo length to 16bits data width */
+    fifo_length = (fifo_length / 2UL);
+
+    while ((initial_TxXferCount > 0UL) || (initial_RxXferCount > 0UL))
+    {
+      /* Check the TXP flag */
+      if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXP)) && (initial_TxXferCount > 0UL) &&
+          (initial_RxXferCount  < (initial_TxXferCount + fifo_length)))
+      {
+#if defined (__GNUC__)
+        *ptxdr_16bits = *((const uint16_t *)hspi->pTxBuffPtr);
+#else
+        *((__IO uint16_t *)&hspi->Instance->TXDR) = *((const uint16_t *)hspi->pTxBuffPtr);
+#endif /* __GNUC__ */
+        hspi->pTxBuffPtr += sizeof(uint16_t);
+        hspi->TxXferCount--;
+        initial_TxXferCount = hspi->TxXferCount;
+      }
+
+      /* Evaluate state of SR register */
+      temp_sr_reg = hspi->Instance->SR;
+
+      if (initial_RxXferCount > 0UL)
+      {
+        /* Check the RXP flag */
+        if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXP))
+        {
+#if defined (__GNUC__)
+          *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+          *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+          hspi->pRxBuffPtr += sizeof(uint16_t);
+          hspi->RxXferCount--;
+          initial_RxXferCount = hspi->RxXferCount;
+        }
+        /* Check RXWNE flag if RXP cannot be reached */
+        else if ((initial_RxXferCount < init_max_data_in_fifo) && ((temp_sr_reg & SPI_SR_RXWNE_Msk) != 0UL))
+        {
+#if defined (__GNUC__)
+          *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+          *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+          hspi->pRxBuffPtr += sizeof(uint16_t);
+#if defined (__GNUC__)
+          *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+          *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+          hspi->pRxBuffPtr += sizeof(uint16_t);
+          hspi->RxXferCount -= (uint16_t)2UL;
+          initial_RxXferCount = hspi->RxXferCount;
+        }
+        /* Check RXPLVL flags when RXWNE cannot be reached */
+        else if ((initial_RxXferCount == 1UL) && ((temp_sr_reg & SPI_SR_RXPLVL_0) != 0UL))
+        {
+#if defined (__GNUC__)
+          *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+          *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+          hspi->pRxBuffPtr += sizeof(uint16_t);
+          hspi->RxXferCount--;
+          initial_RxXferCount = hspi->RxXferCount;
+        }
+        else
+        {
+          /* Timeout management */
+          if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+          {
+            /* Call standard close procedure with error check */
+            SPI_CloseTransfer(hspi);
+
+            SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+            hspi->State = HAL_SPI_STATE_READY;
+
+            /* Unlock the process */
+            __HAL_UNLOCK(hspi);
+
+            return HAL_TIMEOUT;
+          }
+        }
+      }
+    }
+  }
+  /* Transmit and Receive data in 8 Bit mode */
+  else
+  {
+    while ((initial_TxXferCount > 0UL) || (initial_RxXferCount > 0UL))
+    {
+      /* Check the TXP flag */
+      if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXP)) && (initial_TxXferCount > 0UL) &&
+          (initial_RxXferCount  < (initial_TxXferCount + fifo_length)))
+      {
+        *((__IO uint8_t *)&hspi->Instance->TXDR) = *((const uint8_t *)hspi->pTxBuffPtr);
+        hspi->pTxBuffPtr += sizeof(uint8_t);
+        hspi->TxXferCount--;
+        initial_TxXferCount = hspi->TxXferCount;
+      }
+
+      /* Evaluate state of SR register */
+      temp_sr_reg = hspi->Instance->SR;
+
+      if (initial_RxXferCount > 0UL)
+      {
+        /* Check the RXP flag */
+        if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXP))
+        {
+          *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint8_t);
+          hspi->RxXferCount--;
+          initial_RxXferCount = hspi->RxXferCount;
+        }
+        /* Check RXWNE flag if RXP cannot be reached */
+        else if ((initial_RxXferCount < init_max_data_in_fifo) && ((temp_sr_reg & SPI_SR_RXWNE_Msk) != 0UL))
+        {
+          *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint8_t);
+          *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint8_t);
+          *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint8_t);
+          *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint8_t);
+          hspi->RxXferCount -= (uint16_t)4UL;
+          initial_RxXferCount = hspi->RxXferCount;
+        }
+        /* Check RXPLVL flags when RXWNE cannot be reached */
+        else if ((initial_RxXferCount < 4UL) && ((temp_sr_reg & SPI_SR_RXPLVL_Msk) != 0UL))
+        {
+          *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint8_t);
+          hspi->RxXferCount--;
+          initial_RxXferCount = hspi->RxXferCount;
+        }
+        else
+        {
+          /* Timeout management */
+          if ((((HAL_GetTick() - tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+          {
+            /* Call standard close procedure with error check */
+            SPI_CloseTransfer(hspi);
+
+            SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_TIMEOUT);
+            hspi->State = HAL_SPI_STATE_READY;
+
+            /* Unlock the process */
+            __HAL_UNLOCK(hspi);
+
+            return HAL_TIMEOUT;
+          }
+        }
+      }
+    }
+  }
+
+  /* Wait for Tx/Rx (and CRC) data to be sent/received */
+  if (SPI_WaitOnFlagUntilTimeout(hspi, SPI_FLAG_EOT, RESET, Timeout, tickstart) != HAL_OK)
+  {
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG);
+  }
+
+  /* Call standard close procedure with error check */
+  SPI_CloseTransfer(hspi);
+
+  hspi->State = HAL_SPI_STATE_READY;
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  if (hspi->ErrorCode != HAL_SPI_ERROR_NONE)
+  {
+    return HAL_ERROR;
+  }
+  else
+  {
+    return HAL_OK;
+  }
+}
+
+/**
+  * @brief  Transmit an amount of data in non-blocking mode with Interrupt.
+  * @param  hspi : pointer to a SPI_HandleTypeDef structure that contains
+  *                the configuration information for SPI module.
+  * @param  pData: pointer to data buffer
+  * @param  Size : amount of data to be sent
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size)
+{
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE_2LINES_TXONLY(hspi->Init.Direction));
+
+  if ((pData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    return HAL_BUSY;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_TX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pTxBuffPtr  = (const uint8_t *)pData;
+  hspi->TxXferSize  = Size;
+  hspi->TxXferCount = Size;
+
+  /* Init field not used in handle to zero */
+  hspi->pRxBuffPtr  = NULL;
+  hspi->RxXferSize  = (uint16_t) 0UL;
+  hspi->RxXferCount = (uint16_t) 0UL;
+  hspi->RxISR       = NULL;
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+  hspi->Reload.Requested   = 0UL;
+  hspi->Reload.pTxBuffPtr  = NULL;
+  hspi->Reload.TxXferSize  = NULL;
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+  /* Set the function for IT treatment */
+  if (hspi->Init.DataSize > SPI_DATASIZE_16BIT)
+  {
+    hspi->TxISR = SPI_TxISR_32BIT;
+  }
+  else if (hspi->Init.DataSize > SPI_DATASIZE_8BIT)
+  {
+    hspi->TxISR = SPI_TxISR_16BIT;
+  }
+  else
+  {
+    hspi->TxISR = SPI_TxISR_8BIT;
+  }
+
+  /* Configure communication direction : 1Line */
+  if (hspi->Init.Direction == SPI_DIRECTION_1LINE)
+  {
+    SPI_1LINE_TX(hspi);
+  }
+  else
+  {
+    SPI_2LINES_TX(hspi);
+  }
+
+  /* Set the number of data at current transfer */
+  MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+
+  /* Enable SPI peripheral */
+  __HAL_SPI_ENABLE(hspi);
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  /* Enable EOT, TXP, FRE, MODF, UDR and TSERF interrupts */
+  __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_EOT | SPI_IT_TXP | SPI_IT_UDR | SPI_IT_FRE | SPI_IT_MODF | SPI_IT_TSERF));
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Master transfer start */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Receive an amount of data in non-blocking mode with Interrupt.
+  * @param  hspi : pointer to a SPI_HandleTypeDef structure that contains
+  *                the configuration information for SPI module.
+  * @param  pData: pointer to data buffer
+  * @param  Size : amount of data to be sent
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
+{
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE_2LINES_RXONLY(hspi->Init.Direction));
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    return HAL_BUSY;
+  }
+
+  if ((pData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_RX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pRxBuffPtr  = (uint8_t *)pData;
+  hspi->RxXferSize  = Size;
+  hspi->RxXferCount = Size;
+
+  /* Init field not used in handle to zero */
+  hspi->pTxBuffPtr  = NULL;
+  hspi->TxXferSize  = (uint16_t) 0UL;
+  hspi->TxXferCount = (uint16_t) 0UL;
+  hspi->TxISR       = NULL;
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+  hspi->Reload.Requested   = 0UL;
+  hspi->Reload.pRxBuffPtr  = NULL;
+  hspi->Reload.RxXferSize  = NULL;
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+  /* Set the function for IT treatment */
+  if (hspi->Init.DataSize > SPI_DATASIZE_16BIT)
+  {
+    hspi->RxISR = SPI_RxISR_32BIT;
+  }
+  else if (hspi->Init.DataSize > SPI_DATASIZE_8BIT)
+  {
+    hspi->RxISR = SPI_RxISR_16BIT;
+  }
+  else
+  {
+    hspi->RxISR = SPI_RxISR_8BIT;
+  }
+
+  /* Configure communication direction : 1Line */
+  if (hspi->Init.Direction == SPI_DIRECTION_1LINE)
+  {
+    SPI_1LINE_RX(hspi);
+  }
+  else
+  {
+    SPI_2LINES_RX(hspi);
+  }
+
+  /* Note : The SPI must be enabled after unlocking current process
+            to avoid the risk of SPI interrupt handle execution before current
+            process unlock */
+
+  /* Set the number of data at current transfer */
+  MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+
+  /* Enable SPI peripheral */
+  __HAL_SPI_ENABLE(hspi);
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  /* Enable EOT, RXP, OVR, FRE, MODF and TSERF interrupts */
+  __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_EOT | SPI_IT_RXP | SPI_IT_OVR | SPI_IT_FRE | SPI_IT_MODF | SPI_IT_TSERF));
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Master transfer start */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Transmit and Receive an amount of data in non-blocking mode with Interrupt.
+  * @param  hspi   : pointer to a SPI_HandleTypeDef structure that contains
+  *                  the configuration information for SPI module.
+  * @param  pTxData: pointer to transmission data buffer
+  * @param  pRxData: pointer to reception data buffer
+  * @param  Size   : amount of data to be sent and received
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
+                                             uint16_t Size)
+{
+  uint32_t tmp_TxXferCount;
+#if defined (__GNUC__)
+  __IO uint16_t *ptxdr_16bits = (__IO uint16_t *)(&(hspi->Instance->TXDR));
+#endif /* __GNUC__ */
+
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction));
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    return HAL_BUSY;
+  }
+
+  if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_TX_RX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pTxBuffPtr  = (const uint8_t *)pTxData;
+  hspi->TxXferSize  = Size;
+  hspi->TxXferCount = Size;
+  hspi->pRxBuffPtr  = (uint8_t *)pRxData;
+  hspi->RxXferSize  = Size;
+  hspi->RxXferCount = Size;
+  tmp_TxXferCount   = hspi->TxXferCount;
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+  hspi->Reload.Requested   = 0UL;
+  hspi->Reload.pRxBuffPtr  = NULL;
+  hspi->Reload.RxXferSize  = NULL;
+  hspi->Reload.pTxBuffPtr  = NULL;
+  hspi->Reload.TxXferSize  = NULL;
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+  /* Set the function for IT treatment */
+  if (hspi->Init.DataSize > SPI_DATASIZE_16BIT)
+  {
+    hspi->TxISR     = SPI_TxISR_32BIT;
+    hspi->RxISR     = SPI_RxISR_32BIT;
+  }
+  else if (hspi->Init.DataSize > SPI_DATASIZE_8BIT)
+  {
+    hspi->RxISR     = SPI_RxISR_16BIT;
+    hspi->TxISR     = SPI_TxISR_16BIT;
+  }
+  else
+  {
+    hspi->RxISR     = SPI_RxISR_8BIT;
+    hspi->TxISR     = SPI_TxISR_8BIT;
+  }
+
+  /* Set Full-Duplex mode */
+  SPI_2LINES(hspi);
+
+  /* Set the number of data at current transfer */
+  MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+
+  /* Enable SPI peripheral */
+  __HAL_SPI_ENABLE(hspi);
+
+  /* Fill in the TxFIFO */
+  while ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXP)) && (tmp_TxXferCount != 0UL))
+  {
+    /* Transmit data in 32 Bit mode */
+    if (hspi->Init.DataSize > SPI_DATASIZE_16BIT)
+    {
+      *((__IO uint32_t *)&hspi->Instance->TXDR) = *((const uint32_t *)hspi->pTxBuffPtr);
+      hspi->pTxBuffPtr += sizeof(uint32_t);
+      hspi->TxXferCount--;
+      tmp_TxXferCount = hspi->TxXferCount;
+    }
+    /* Transmit data in 16 Bit mode */
+    else if (hspi->Init.DataSize > SPI_DATASIZE_8BIT)
+    {
+#if defined (__GNUC__)
+      *ptxdr_16bits = *((const uint16_t *)hspi->pTxBuffPtr);
+#else
+      *((__IO uint16_t *)&hspi->Instance->TXDR) = *((const uint16_t *)hspi->pTxBuffPtr);
+#endif /* __GNUC__ */
+      hspi->pTxBuffPtr += sizeof(uint16_t);
+      hspi->TxXferCount--;
+      tmp_TxXferCount = hspi->TxXferCount;
+    }
+    /* Transmit data in 8 Bit mode */
+    else
+    {
+      *((__IO uint8_t *)&hspi->Instance->TXDR) = *((const uint8_t *)hspi->pTxBuffPtr);
+      hspi->pTxBuffPtr += sizeof(uint8_t);
+      hspi->TxXferCount--;
+      tmp_TxXferCount = hspi->TxXferCount;
+    }
+  }
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  /* Enable EOT, DXP, UDR, OVR, FRE, MODF and TSERF interrupts */
+  __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_EOT | SPI_IT_DXP | SPI_IT_UDR | SPI_IT_OVR |
+                             SPI_IT_FRE | SPI_IT_MODF | SPI_IT_TSERF));
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Start Master transfer */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  return HAL_OK;
+}
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+/**
+  * @brief  Transmit an additional amount of data in blocking mode.
+  * @param  hspi : pointer to a SPI_HandleTypeDef structure that contains
+  *                the configuration information for SPI module.
+  * @param  pData: pointer to data buffer
+  * @param  Size : amount of data to be sent
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Reload_Transmit_IT(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size)
+{
+  /* check if there is already a request to reload */
+  if ((hspi->Reload.Requested == 1UL) || (pData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  if (hspi->State == HAL_SPI_STATE_BUSY_TX)
+  {
+    /* Lock the process */
+    __HAL_LOCK(hspi);
+
+    /* Insert the new number of data to be sent just after the current one */
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSER, (Size & 0xFFFFFFFFUL) << 16UL);
+
+    /* Set the transaction information */
+    hspi->Reload.Requested   = 1UL;
+    hspi->Reload.pTxBuffPtr  = (const uint8_t *)pData;
+    hspi->Reload.TxXferSize  = Size;
+
+    /* Unlock the process */
+    __HAL_UNLOCK(hspi);
+
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+/**
+  * @brief  Receive an additional amount of data in blocking mode.
+  * @param  hspi : pointer to a SPI_HandleTypeDef structure that contains
+  *                the configuration information for SPI module.
+  * @param  pData: pointer to data buffer
+  * @param  Size : amount of data to be sent
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Reload_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
+{
+  /* check if there is already a request to reload */
+  if ((hspi->Reload.Requested == 1UL) || (pData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  if (hspi->State == HAL_SPI_STATE_BUSY_RX)
+  {
+    /* Lock the process */
+    __HAL_LOCK(hspi);
+
+    /* Insert the new number of data that will be received just after the current one */
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSER, (Size & 0xFFFFFFFFUL) << 16UL);
+
+    /* Set the transaction information */
+    hspi->Reload.Requested   = 1UL;
+    hspi->Reload.pRxBuffPtr  = (uint8_t *)pData;
+    hspi->Reload.RxXferSize  = Size;
+
+    /* Unlock the process */
+    __HAL_UNLOCK(hspi);
+
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+/**
+  * @brief  Transmit and receive an additional amount of data in blocking mode.
+  * @param  hspi   : pointer to a SPI_HandleTypeDef structure that contains
+  *                  the configuration information for SPI module.
+  * @param  pTxData: pointer to transmission data buffer
+  * @param  pRxData: pointer to reception data buffer
+  * @param  Size   : amount of data to be sent and received
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Reload_TransmitReceive_IT(SPI_HandleTypeDef *hspi, const uint8_t *pTxData,
+                                                    uint8_t *pRxData, uint16_t Size)
+{
+  /* check if there is already a request to reload */
+  if ((hspi->Reload.Requested == 1UL) || (pTxData == NULL) || (pRxData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  if (hspi->State == HAL_SPI_STATE_BUSY_TX_RX)
+  {
+    /* Lock the process */
+    __HAL_LOCK(hspi);
+
+    /* Insert the new number of data that will be sent and received just after the current one */
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSER, (Size & 0xFFFFFFFFUL) << 16UL);
+
+    /* Set the transaction information */
+    hspi->Reload.Requested   = 1UL;
+    hspi->Reload.pTxBuffPtr  = (const uint8_t *)pTxData;
+    hspi->Reload.TxXferSize  = Size;
+    hspi->Reload.pRxBuffPtr  = (uint8_t *)pRxData;
+    hspi->Reload.RxXferSize  = Size;
+
+    /* Unlock the process */
+    __HAL_UNLOCK(hspi);
+
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+/**
+  * @brief  Transmit an amount of data in non-blocking mode with DMA.
+  * @param  hspi : pointer to a SPI_HandleTypeDef structure that contains
+  *                the configuration information for SPI module.
+  * @param  pData: pointer to data buffer
+  * @param  Size : amount of data to be sent
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size)
+{
+
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE_2LINES_TXONLY(hspi->Init.Direction));
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    return HAL_BUSY;
+  }
+
+  if ((pData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_TX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pTxBuffPtr  = (const uint8_t *)pData;
+  hspi->TxXferSize  = Size;
+  hspi->TxXferCount = Size;
+
+  /* Init field not used in handle to zero */
+  hspi->pRxBuffPtr  = NULL;
+  hspi->TxISR       = NULL;
+  hspi->RxISR       = NULL;
+  hspi->RxXferSize  = (uint16_t)0UL;
+  hspi->RxXferCount = (uint16_t)0UL;
+
+  /* Configure communication direction : 1Line */
+  if (hspi->Init.Direction == SPI_DIRECTION_1LINE)
+  {
+    SPI_1LINE_TX(hspi);
+  }
+  else
+  {
+    SPI_2LINES_TX(hspi);
+  }
+
+  /* Packing mode management is enabled by the DMA settings */
+  if (((hspi->Init.DataSize > SPI_DATASIZE_16BIT) && (hspi->hdmatx->Init.MemDataAlignment != DMA_MDATAALIGN_WORD))    || \
+      ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) && ((hspi->hdmatx->Init.MemDataAlignment != DMA_MDATAALIGN_HALFWORD) && \
+                                                     (hspi->hdmatx->Init.MemDataAlignment != DMA_MDATAALIGN_WORD))))
+  {
+    /* Restriction the DMA data received is not allowed in this mode */
+    __HAL_UNLOCK(hspi);
+    return HAL_ERROR;
+  }
+
+  /* Adjust XferCount according to DMA alignment / Data size */
+  if (hspi->Init.DataSize <= SPI_DATASIZE_8BIT)
+  {
+    if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD)
+    {
+      hspi->TxXferCount = (hspi->TxXferCount + (uint16_t) 1UL) >> 1UL;
+    }
+    if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_WORD)
+    {
+      hspi->TxXferCount = (hspi->TxXferCount + (uint16_t) 3UL) >> 2UL;
+    }
+  }
+  else if (hspi->Init.DataSize <= SPI_DATASIZE_16BIT)
+  {
+    if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_WORD)
+    {
+      hspi->TxXferCount = (hspi->TxXferCount + (uint16_t) 1UL) >> 1UL;
+    }
+  }
+  else
+  {
+    /* Adjustment done */
+  }
+
+  /* Set the SPI TxDMA Half transfer complete callback */
+  hspi->hdmatx->XferHalfCpltCallback = SPI_DMAHalfTransmitCplt;
+
+  /* Set the SPI TxDMA transfer complete callback */
+  hspi->hdmatx->XferCpltCallback = SPI_DMATransmitCplt;
+
+  /* Set the DMA error callback */
+  hspi->hdmatx->XferErrorCallback = SPI_DMAError;
+
+  /* Set the DMA AbortCpltCallback */
+  hspi->hdmatx->XferAbortCallback = NULL;
+
+  /* Clear TXDMAEN bit*/
+  CLEAR_BIT(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN);
+
+  /* Enable the Tx DMA Stream/Channel */
+  if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmatx, (uint32_t)hspi->pTxBuffPtr, (uint32_t)&hspi->Instance->TXDR,
+                                 hspi->TxXferCount))
+  {
+    /* Update SPI error code */
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA);
+    hspi->State = HAL_SPI_STATE_READY;
+
+    /* Unlock the process */
+    __HAL_UNLOCK(hspi);
+
+    return HAL_ERROR;
+  }
+
+  /* Set the number of data at current transfer */
+  if (hspi->hdmatx->Init.Mode == DMA_CIRCULAR)
+  {
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, 0UL);
+  }
+  else
+  {
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+  }
+
+  /* Enable Tx DMA Request */
+  SET_BIT(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN);
+
+  /* Enable the SPI Error Interrupt Bit */
+  __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_UDR | SPI_IT_FRE | SPI_IT_MODF));
+
+  /* Enable SPI peripheral */
+  __HAL_SPI_ENABLE(hspi);
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Master transfer start */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Receive an amount of data in non-blocking mode with DMA.
+  * @param  hspi : pointer to a SPI_HandleTypeDef structure that contains
+  *                the configuration information for SPI module.
+  * @param  pData: pointer to data buffer
+  * @param  Size : amount of data to be sent
+  * @note   When the CRC feature is enabled the pData Length must be Size + 1.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
+{
+
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE_2LINES_RXONLY(hspi->Init.Direction));
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    __HAL_UNLOCK(hspi);
+    return HAL_BUSY;
+  }
+
+  if ((pData == NULL) || (Size == 0UL))
+  {
+    __HAL_UNLOCK(hspi);
+    return HAL_ERROR;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_RX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pRxBuffPtr  = (uint8_t *)pData;
+  hspi->RxXferSize  = Size;
+  hspi->RxXferCount = Size;
+
+  /*Init field not used in handle to zero */
+  hspi->RxISR       = NULL;
+  hspi->TxISR       = NULL;
+  hspi->TxXferSize  = (uint16_t) 0UL;
+  hspi->TxXferCount = (uint16_t) 0UL;
+
+  /* Configure communication direction : 1Line */
+  if (hspi->Init.Direction == SPI_DIRECTION_1LINE)
+  {
+    SPI_1LINE_RX(hspi);
+  }
+  else
+  {
+    SPI_2LINES_RX(hspi);
+  }
+
+  /* Packing mode management is enabled by the DMA settings */
+  if (((hspi->Init.DataSize > SPI_DATASIZE_16BIT) && (hspi->hdmarx->Init.MemDataAlignment != DMA_MDATAALIGN_WORD))    || \
+      ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) && ((hspi->hdmarx->Init.MemDataAlignment != DMA_MDATAALIGN_HALFWORD) && \
+                                                     (hspi->hdmarx->Init.MemDataAlignment != DMA_MDATAALIGN_WORD))))
+  {
+    /* Restriction the DMA data received is not allowed in this mode */
+    __HAL_UNLOCK(hspi);
+    return HAL_ERROR;
+  }
+
+  /* Clear RXDMAEN bit */
+  CLEAR_BIT(hspi->Instance->CFG1, SPI_CFG1_RXDMAEN);
+
+  /* Adjust XferCount according to DMA alignment / Data size */
+  if (hspi->Init.DataSize <= SPI_DATASIZE_8BIT)
+  {
+    if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD)
+    {
+      hspi->RxXferCount = (hspi->RxXferCount + (uint16_t) 1UL) >> 1UL;
+    }
+    if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_WORD)
+    {
+      hspi->RxXferCount = (hspi->RxXferCount + (uint16_t) 3UL) >> 2UL;
+    }
+  }
+  else if (hspi->Init.DataSize <= SPI_DATASIZE_16BIT)
+  {
+    if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_WORD)
+    {
+      hspi->RxXferCount = (hspi->RxXferCount + (uint16_t) 1UL) >> 1UL;
+    }
+  }
+  else
+  {
+    /* Adjustment done */
+  }
+
+  /* Set the SPI RxDMA Half transfer complete callback */
+  hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt;
+
+  /* Set the SPI Rx DMA transfer complete callback */
+  hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt;
+
+  /* Set the DMA error callback */
+  hspi->hdmarx->XferErrorCallback = SPI_DMAError;
+
+  /* Set the DMA AbortCpltCallback */
+  hspi->hdmarx->XferAbortCallback = NULL;
+
+  /* Enable the Rx DMA Stream/Channel  */
+  if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->RXDR, (uint32_t)hspi->pRxBuffPtr,
+                                 hspi->RxXferCount))
+  {
+    /* Update SPI error code */
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA);
+    hspi->State = HAL_SPI_STATE_READY;
+
+    /* Unlock the process */
+    __HAL_UNLOCK(hspi);
+
+    return HAL_ERROR;
+  }
+
+  /* Set the number of data at current transfer */
+  if (hspi->hdmarx->Init.Mode == DMA_CIRCULAR)
+  {
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, 0UL);
+  }
+  else
+  {
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+  }
+
+  /* Enable Rx DMA Request */
+  SET_BIT(hspi->Instance->CFG1, SPI_CFG1_RXDMAEN);
+
+  /* Enable the SPI Error Interrupt Bit */
+  __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_OVR | SPI_IT_FRE | SPI_IT_MODF));
+
+  /* Enable SPI peripheral */
+  __HAL_SPI_ENABLE(hspi);
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Master transfer start */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Transmit and Receive an amount of data in non-blocking mode with DMA.
+  * @param  hspi   : pointer to a SPI_HandleTypeDef structure that contains
+  *                  the configuration information for SPI module.
+  * @param  pTxData: pointer to transmission data buffer
+  * @param  pRxData: pointer to reception data buffer
+  * @param  Size   : amount of data to be sent
+  * @note   When the CRC feature is enabled the pRxData Length must be Size + 1
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
+                                              uint16_t Size)
+{
+  /* Check Direction parameter */
+  assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction));
+
+  if (hspi->State != HAL_SPI_STATE_READY)
+  {
+    return HAL_BUSY;
+  }
+
+  if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0UL))
+  {
+    return HAL_ERROR;
+  }
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set the transaction information */
+  hspi->State       = HAL_SPI_STATE_BUSY_TX_RX;
+  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
+  hspi->pTxBuffPtr  = (const uint8_t *)pTxData;
+  hspi->TxXferSize  = Size;
+  hspi->TxXferCount = Size;
+  hspi->pRxBuffPtr  = (uint8_t *)pRxData;
+  hspi->RxXferSize  = Size;
+  hspi->RxXferCount = Size;
+
+  /* Init field not used in handle to zero */
+  hspi->RxISR       = NULL;
+  hspi->TxISR       = NULL;
+
+  /* Set Full-Duplex mode */
+  SPI_2LINES(hspi);
+
+  /* Reset the Tx/Rx DMA bits */
+  CLEAR_BIT(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN | SPI_CFG1_RXDMAEN);
+
+  /* Packing mode management is enabled by the DMA settings */
+  if (((hspi->Init.DataSize > SPI_DATASIZE_16BIT) && \
+       ((hspi->hdmarx->Init.MemDataAlignment != DMA_MDATAALIGN_WORD) || \
+        (hspi->hdmatx->Init.MemDataAlignment != DMA_MDATAALIGN_WORD))) || \
+      ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) && \
+       (((hspi->hdmarx->Init.MemDataAlignment != DMA_MDATAALIGN_HALFWORD) && \
+         (hspi->hdmarx->Init.MemDataAlignment != DMA_MDATAALIGN_WORD)) || \
+        ((hspi->hdmatx->Init.MemDataAlignment != DMA_MDATAALIGN_HALFWORD) && \
+         (hspi->hdmatx->Init.MemDataAlignment != DMA_MDATAALIGN_WORD)))))
+  {
+    /* Restriction the DMA data received is not allowed in this mode */
+    /* Unlock the process */
+    __HAL_UNLOCK(hspi);
+    return HAL_ERROR;
+  }
+
+  /* Adjust XferCount according to DMA alignment / Data size */
+  if (hspi->Init.DataSize <= SPI_DATASIZE_8BIT)
+  {
+    if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD)
+    {
+      hspi->TxXferCount = (hspi->TxXferCount + (uint16_t) 1UL) >> 1UL;
+    }
+    if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_WORD)
+    {
+      hspi->TxXferCount = (hspi->TxXferCount + (uint16_t) 3UL) >> 2UL;
+    }
+    if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD)
+    {
+      hspi->RxXferCount = (hspi->RxXferCount + (uint16_t) 1UL) >> 1UL;
+    }
+    if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_WORD)
+    {
+      hspi->RxXferCount = (hspi->RxXferCount + (uint16_t) 3UL) >> 2UL;
+    }
+  }
+  else if (hspi->Init.DataSize <= SPI_DATASIZE_16BIT)
+  {
+    if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_WORD)
+    {
+      hspi->TxXferCount = (hspi->TxXferCount + (uint16_t) 1UL) >> 1UL;
+    }
+    if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_WORD)
+    {
+      hspi->RxXferCount = (hspi->RxXferCount + (uint16_t) 1UL) >> 1UL;
+    }
+  }
+  else
+  {
+    /* Adjustment done */
+  }
+
+  /* Set the SPI Tx/Rx DMA Half transfer complete callback */
+  hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfTransmitReceiveCplt;
+  hspi->hdmarx->XferCpltCallback     = SPI_DMATransmitReceiveCplt;
+
+  /* Set the DMA error callback */
+  hspi->hdmarx->XferErrorCallback = SPI_DMAError;
+
+  /* Set the DMA AbortCallback */
+  hspi->hdmarx->XferAbortCallback = NULL;
+
+  /* Enable the Rx DMA Stream/Channel  */
+  if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->RXDR, (uint32_t)hspi->pRxBuffPtr,
+                                 hspi->RxXferCount))
+  {
+    /* Update SPI error code */
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA);
+    hspi->State = HAL_SPI_STATE_READY;
+
+    /* Unlock the process */
+    __HAL_UNLOCK(hspi);
+
+    return HAL_ERROR;
+  }
+
+  /* Enable Rx DMA Request */
+  SET_BIT(hspi->Instance->CFG1, SPI_CFG1_RXDMAEN);
+
+  /* Set the SPI Tx DMA transfer complete callback as NULL because the communication closing
+  is performed in DMA reception complete callback  */
+  hspi->hdmatx->XferHalfCpltCallback = NULL;
+  hspi->hdmatx->XferCpltCallback     = NULL;
+  hspi->hdmatx->XferAbortCallback    = NULL;
+
+  /* Set the DMA error callback */
+  hspi->hdmatx->XferErrorCallback    = SPI_DMAError;
+
+  /* Enable the Tx DMA Stream/Channel  */
+  if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmatx, (uint32_t)hspi->pTxBuffPtr, (uint32_t)&hspi->Instance->TXDR,
+                                 hspi->TxXferCount))
+  {
+    /* Abort Rx DMA Channel already started */
+    (void)HAL_DMA_Abort(hspi->hdmarx);
+
+    /* Update SPI error code */
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA);
+    hspi->State = HAL_SPI_STATE_READY;
+
+    /* Unlock the process */
+    __HAL_UNLOCK(hspi);
+
+    return HAL_ERROR;
+  }
+
+  if (hspi->hdmatx->Init.Mode == DMA_CIRCULAR)
+  {
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, 0UL);
+  }
+  else
+  {
+    MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);
+  }
+
+  /* Enable Tx DMA Request */
+  SET_BIT(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN);
+
+  /* Enable the SPI Error Interrupt Bit */
+  __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_OVR | SPI_IT_UDR | SPI_IT_FRE | SPI_IT_MODF));
+
+  /* Enable SPI peripheral */
+  __HAL_SPI_ENABLE(hspi);
+
+  if (hspi->Init.Mode == SPI_MODE_MASTER)
+  {
+    /* Master transfer start */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSTART);
+  }
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Abort ongoing transfer (blocking mode).
+  * @param  hspi SPI handle.
+  * @note   This procedure could be used for aborting any ongoing transfer (Tx and Rx),
+  *         started in Interrupt or DMA mode.
+  * @note   This procedure performs following operations :
+  *          + Disable SPI Interrupts (depending of transfer direction)
+  *          + Disable the DMA transfer in the peripheral register (if enabled)
+  *          + Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode)
+  *          + Set handle State to READY.
+  * @note   This procedure is executed in blocking mode : when exiting function, Abort is considered as completed.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi)
+{
+  HAL_StatusTypeDef errorcode;
+
+  __IO uint32_t count;
+
+  /* Lock the process */
+  __HAL_LOCK(hspi);
+
+  /* Set hspi->state to aborting to avoid any interaction */
+  hspi->State = HAL_SPI_STATE_ABORT;
+
+  /* Initialized local variable  */
+  errorcode = HAL_OK;
+  count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24UL / 1000UL);
+
+  /* If master communication on going, make sure current frame is done before closing the connection */
+  if (HAL_IS_BIT_SET(hspi->Instance->CR1, SPI_CR1_CSTART))
+  {
+    /* Disable EOT interrupt */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_EOT);
+    do
+    {
+      count--;
+      if (count == 0UL)
+      {
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT);
+        break;
+      }
+    } while (HAL_IS_BIT_SET(hspi->Instance->IER, SPI_IT_EOT));
+
+    /* Request a Suspend transfer */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSUSP);
+    do
+    {
+      count--;
+      if (count == 0UL)
+      {
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT);
+        break;
+      }
+    } while (HAL_IS_BIT_SET(hspi->Instance->CR1, SPI_CR1_CSTART));
+
+    /* Clear SUSP flag */
+    __HAL_SPI_CLEAR_SUSPFLAG(hspi);
+    do
+    {
+      count--;
+      if (count == 0UL)
+      {
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT);
+        break;
+      }
+    } while (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_SUSP));
+  }
+
+  /* Disable the SPI DMA Tx request if enabled */
+  if (HAL_IS_BIT_SET(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN))
+  {
+    if (hspi->hdmatx != NULL)
+    {
+      /* Abort the SPI DMA Tx Stream/Channel : use blocking DMA Abort API (no callback) */
+      hspi->hdmatx->XferAbortCallback = NULL;
+
+      /* Abort DMA Tx Handle linked to SPI Peripheral */
+      if (HAL_DMA_Abort(hspi->hdmatx) != HAL_OK)
+      {
+        if (HAL_DMA_GetError(hspi->hdmatx) == HAL_DMA_ERROR_TIMEOUT)
+        {
+          hspi->ErrorCode = HAL_SPI_ERROR_ABORT;
+        }
+      }
+    }
+  }
+
+  /* Disable the SPI DMA Rx request if enabled */
+  if (HAL_IS_BIT_SET(hspi->Instance->CFG1, SPI_CFG1_RXDMAEN))
+  {
+    if (hspi->hdmarx != NULL)
+    {
+      /* Abort the SPI DMA Rx Stream/Channel : use blocking DMA Abort API (no callback) */
+      hspi->hdmarx->XferAbortCallback = NULL;
+
+      /* Abort DMA Rx Handle linked to SPI Peripheral */
+      if (HAL_DMA_Abort(hspi->hdmarx) != HAL_OK)
+      {
+        if (HAL_DMA_GetError(hspi->hdmarx) == HAL_DMA_ERROR_TIMEOUT)
+        {
+          hspi->ErrorCode = HAL_SPI_ERROR_ABORT;
+        }
+      }
+    }
+  }
+
+  /* Proceed with abort procedure */
+  SPI_AbortTransfer(hspi);
+
+  /* Check error during Abort procedure */
+  if (HAL_IS_BIT_SET(hspi->ErrorCode, HAL_SPI_ERROR_ABORT))
+  {
+    /* return HAL_Error in case of error during Abort procedure */
+    errorcode = HAL_ERROR;
+  }
+  else
+  {
+    /* Reset errorCode */
+    hspi->ErrorCode = HAL_SPI_ERROR_NONE;
+  }
+
+  /* Restore hspi->state to ready */
+  hspi->State = HAL_SPI_STATE_READY;
+
+  /* Unlock the process */
+  __HAL_UNLOCK(hspi);
+
+  return errorcode;
+}
+
+/**
+  * @brief  Abort ongoing transfer (Interrupt mode).
+  * @param  hspi SPI handle.
+  * @note   This procedure could be used for aborting any ongoing transfer (Tx and Rx),
+  *         started in Interrupt or DMA mode.
+  * @note   This procedure performs following operations :
+  *          + Disable SPI Interrupts (depending of transfer direction)
+  *          + Disable the DMA transfer in the peripheral register (if enabled)
+  *          + Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode)
+  *          + Set handle State to READY
+  *          + At abort completion, call user abort complete callback.
+  * @note   This procedure is executed in Interrupt mode, meaning that abort procedure could be
+  *         considered as completed only when user abort complete callback is executed (not when exiting function).
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi)
+{
+  HAL_StatusTypeDef errorcode;
+  __IO uint32_t count;
+  uint32_t dma_tx_abort_done = 1UL;
+  uint32_t dma_rx_abort_done = 1UL;
+
+  /* Set hspi->state to aborting to avoid any interaction */
+  hspi->State = HAL_SPI_STATE_ABORT;
+
+  /* Initialized local variable  */
+  errorcode = HAL_OK;
+  count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24UL / 1000UL);
+
+  /* If master communication on going, make sure current frame is done before closing the connection */
+  if (HAL_IS_BIT_SET(hspi->Instance->CR1, SPI_CR1_CSTART))
+  {
+    /* Disable EOT interrupt */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_EOT);
+    do
+    {
+      count--;
+      if (count == 0UL)
+      {
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT);
+        break;
+      }
+    } while (HAL_IS_BIT_SET(hspi->Instance->IER, SPI_IT_EOT));
+
+    /* Request a Suspend transfer */
+    SET_BIT(hspi->Instance->CR1, SPI_CR1_CSUSP);
+    do
+    {
+      count--;
+      if (count == 0UL)
+      {
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT);
+        break;
+      }
+    } while (HAL_IS_BIT_SET(hspi->Instance->CR1, SPI_CR1_CSTART));
+
+    /* Clear SUSP flag */
+    __HAL_SPI_CLEAR_SUSPFLAG(hspi);
+    do
+    {
+      count--;
+      if (count == 0UL)
+      {
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT);
+        break;
+      }
+    } while (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_SUSP));
+  }
+
+  /* If DMA Tx and/or DMA Rx Handles are associated to SPI Handle, DMA Abort complete callbacks should be initialized
+     before any call to DMA Abort functions */
+
+  if (hspi->hdmatx != NULL)
+  {
+    if (HAL_IS_BIT_SET(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN))
+    {
+      /* Set DMA Abort Complete callback if SPI DMA Tx request if enabled */
+      hspi->hdmatx->XferAbortCallback = SPI_DMATxAbortCallback;
+
+      dma_tx_abort_done = 0UL;
+
+      /* Abort DMA Tx Handle linked to SPI Peripheral */
+      if (HAL_DMA_Abort_IT(hspi->hdmatx) != HAL_OK)
+      {
+        if (HAL_DMA_GetError(hspi->hdmatx) == HAL_DMA_ERROR_NO_XFER)
+        {
+          dma_tx_abort_done = 1UL;
+          hspi->hdmatx->XferAbortCallback = NULL;
+        }
+      }
+    }
+    else
+    {
+      hspi->hdmatx->XferAbortCallback = NULL;
+    }
+  }
+
+  if (hspi->hdmarx != NULL)
+  {
+    if (HAL_IS_BIT_SET(hspi->Instance->CFG1, SPI_CFG1_RXDMAEN))
+    {
+      /* Set DMA Abort Complete callback if SPI DMA Rx request if enabled */
+      hspi->hdmarx->XferAbortCallback = SPI_DMARxAbortCallback;
+
+      dma_rx_abort_done = 0UL;
+
+      /* Abort DMA Rx Handle linked to SPI Peripheral */
+      if (HAL_DMA_Abort_IT(hspi->hdmarx) != HAL_OK)
+      {
+        if (HAL_DMA_GetError(hspi->hdmarx) == HAL_DMA_ERROR_NO_XFER)
+        {
+          dma_rx_abort_done = 1UL;
+          hspi->hdmarx->XferAbortCallback = NULL;
+        }
+      }
+    }
+    else
+    {
+      hspi->hdmarx->XferAbortCallback = NULL;
+    }
+  }
+
+  /* If no running DMA transfer, finish cleanup and call callbacks */
+  if ((dma_tx_abort_done == 1UL) && (dma_rx_abort_done == 1UL))
+  {
+    /* Proceed with abort procedure */
+    SPI_AbortTransfer(hspi);
+
+    /* Check error during Abort procedure */
+    if (HAL_IS_BIT_SET(hspi->ErrorCode, HAL_SPI_ERROR_ABORT))
+    {
+      /* return HAL_Error in case of error during Abort procedure */
+      errorcode = HAL_ERROR;
+    }
+    else
+    {
+      /* Reset errorCode */
+      hspi->ErrorCode = HAL_SPI_ERROR_NONE;
+    }
+
+    /* Restore hspi->state to ready */
+    hspi->State = HAL_SPI_STATE_READY;
+
+    /* Call user Abort complete callback */
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+    hspi->AbortCpltCallback(hspi);
+#else
+    HAL_SPI_AbortCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+  }
+
+  return errorcode;
+}
+
+/**
+  * @brief  Pause the DMA Transfer.
+  *         This API is not supported, it is maintained for backward compatibility.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for the specified SPI module.
+  * @retval HAL_ERROR
+  */
+HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi)
+{
+  /* Set error code to not supported */
+  SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_NOT_SUPPORTED);
+
+  return HAL_ERROR;
+}
+
+/**
+  * @brief  Resume the DMA Transfer.
+  *         This API is not supported, it is maintained for backward compatibility.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for the specified SPI module.
+  * @retval HAL_ERROR
+  */
+HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi)
+{
+  /* Set error code to not supported */
+  SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_NOT_SUPPORTED);
+
+  return HAL_ERROR;
+}
+
+/**
+  * @brief  Stop the DMA Transfer.
+  *         This API is not supported, it is maintained for backward compatibility.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for the specified SPI module.
+  * @retval HAL_ERROR
+  */
+HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi)
+{
+  /* Set error code to not supported */
+  SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_NOT_SUPPORTED);
+
+  return HAL_ERROR;
+}
+
+/**
+  * @brief  Handle SPI interrupt request.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for the specified SPI module.
+  * @retval None
+  */
+void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi)
+{
+  uint32_t itsource = hspi->Instance->IER;
+  uint32_t itflag   = hspi->Instance->SR;
+  uint32_t trigger  = itsource & itflag;
+  uint32_t cfg1     = hspi->Instance->CFG1;
+  uint32_t handled  = 0UL;
+
+  HAL_SPI_StateTypeDef State = hspi->State;
+#if defined (__GNUC__)
+  __IO uint16_t *prxdr_16bits = (__IO uint16_t *)(&(hspi->Instance->RXDR));
+#endif /* __GNUC__ */
+
+  /* SPI in SUSPEND mode  ----------------------------------------------------*/
+  if (HAL_IS_BIT_SET(itflag, SPI_FLAG_SUSP) && HAL_IS_BIT_SET(itsource, SPI_FLAG_EOT))
+  {
+    /* Clear the Suspend flag */
+    __HAL_SPI_CLEAR_SUSPFLAG(hspi);
+
+    /* Suspend on going, Call the Suspend callback */
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+    hspi->SuspendCallback(hspi);
+#else
+    HAL_SPI_SuspendCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+    return;
+  }
+
+  /* SPI in mode Transmitter and Receiver ------------------------------------*/
+  if (HAL_IS_BIT_CLR(trigger, SPI_FLAG_OVR) && HAL_IS_BIT_CLR(trigger, SPI_FLAG_UDR) && \
+      HAL_IS_BIT_SET(trigger, SPI_FLAG_DXP))
+  {
+    hspi->TxISR(hspi);
+    hspi->RxISR(hspi);
+    handled = 1UL;
+  }
+
+  /* SPI in mode Receiver ----------------------------------------------------*/
+  if (HAL_IS_BIT_CLR(trigger, SPI_FLAG_OVR) && HAL_IS_BIT_SET(trigger, SPI_FLAG_RXP) && \
+      HAL_IS_BIT_CLR(trigger, SPI_FLAG_DXP))
+  {
+    hspi->RxISR(hspi);
+    handled = 1UL;
+  }
+
+  /* SPI in mode Transmitter -------------------------------------------------*/
+  if (HAL_IS_BIT_CLR(trigger, SPI_FLAG_UDR) && HAL_IS_BIT_SET(trigger, SPI_FLAG_TXP) && \
+      HAL_IS_BIT_CLR(trigger, SPI_FLAG_DXP))
+  {
+    hspi->TxISR(hspi);
+    handled = 1UL;
+  }
+
+#if defined(USE_SPI_RELOAD_TRANSFER)
+  /* SPI Reload  -------------------------------------------------*/
+  if (HAL_IS_BIT_SET(trigger, SPI_FLAG_TSERF))
+  {
+    __HAL_SPI_CLEAR_TSERFFLAG(hspi);
+  }
+#endif /* USE_SPI_RELOAD_TRANSFER */
+
+  if (handled != 0UL)
+  {
+    return;
+  }
+
+  /* SPI End Of Transfer: DMA or IT based transfer */
+  if (HAL_IS_BIT_SET(trigger, SPI_FLAG_EOT))
+  {
+    /* Clear EOT/TXTF/SUSP flag */
+    __HAL_SPI_CLEAR_EOTFLAG(hspi);
+    __HAL_SPI_CLEAR_TXTFFLAG(hspi);
+    __HAL_SPI_CLEAR_SUSPFLAG(hspi);
+
+    /* Disable EOT interrupt */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_EOT);
+
+    /* For the IT based receive extra polling maybe required for last packet */
+    if (HAL_IS_BIT_CLR(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN | SPI_CFG1_RXDMAEN))
+    {
+      /* Pooling remaining data */
+      while (hspi->RxXferCount != 0UL)
+      {
+        /* Receive data in 32 Bit mode */
+        if (hspi->Init.DataSize > SPI_DATASIZE_16BIT)
+        {
+          *((uint32_t *)hspi->pRxBuffPtr) = *((__IO uint32_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint32_t);
+        }
+        /* Receive data in 16 Bit mode */
+        else if (hspi->Init.DataSize > SPI_DATASIZE_8BIT)
+        {
+#if defined (__GNUC__)
+          *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+          *((uint16_t *)hspi->pRxBuffPtr) = *((__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+          hspi->pRxBuffPtr += sizeof(uint16_t);
+        }
+        /* Receive data in 8 Bit mode */
+        else
+        {
+          *((uint8_t *)hspi->pRxBuffPtr) = *((__IO uint8_t *)&hspi->Instance->RXDR);
+          hspi->pRxBuffPtr += sizeof(uint8_t);
+        }
+
+        hspi->RxXferCount--;
+      }
+    }
+
+    /* Call SPI Standard close procedure */
+    SPI_CloseTransfer(hspi);
+
+    hspi->State = HAL_SPI_STATE_READY;
+    if (hspi->ErrorCode != HAL_SPI_ERROR_NONE)
+    {
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+      hspi->ErrorCallback(hspi);
+#else
+      HAL_SPI_ErrorCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+      return;
+    }
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+    /* Call appropriate user callback */
+    if (State == HAL_SPI_STATE_BUSY_TX_RX)
+    {
+      hspi->TxRxCpltCallback(hspi);
+    }
+    else if (State == HAL_SPI_STATE_BUSY_RX)
+    {
+      hspi->RxCpltCallback(hspi);
+    }
+    else if (State == HAL_SPI_STATE_BUSY_TX)
+    {
+      hspi->TxCpltCallback(hspi);
+    }
+#else
+    /* Call appropriate user callback */
+    if (State == HAL_SPI_STATE_BUSY_TX_RX)
+    {
+      HAL_SPI_TxRxCpltCallback(hspi);
+    }
+    else if (State == HAL_SPI_STATE_BUSY_RX)
+    {
+      HAL_SPI_RxCpltCallback(hspi);
+    }
+    else if (State == HAL_SPI_STATE_BUSY_TX)
+    {
+      HAL_SPI_TxCpltCallback(hspi);
+    }
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+    else
+    {
+      /* End of the appropriate call */
+    }
+
+    return;
+  }
+
+  /* SPI in Error Treatment --------------------------------------------------*/
+  if ((trigger & (SPI_FLAG_MODF | SPI_FLAG_OVR | SPI_FLAG_FRE | SPI_FLAG_UDR)) != 0UL)
+  {
+    /* SPI Overrun error interrupt occurred ----------------------------------*/
+    if ((trigger & SPI_FLAG_OVR) != 0UL)
+    {
+      SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR);
+      __HAL_SPI_CLEAR_OVRFLAG(hspi);
+    }
+
+    /* SPI Mode Fault error interrupt occurred -------------------------------*/
+    if ((trigger & SPI_FLAG_MODF) != 0UL)
+    {
+      SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_MODF);
+      __HAL_SPI_CLEAR_MODFFLAG(hspi);
+    }
+
+    /* SPI Frame error interrupt occurred ------------------------------------*/
+    if ((trigger & SPI_FLAG_FRE) != 0UL)
+    {
+      SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE);
+      __HAL_SPI_CLEAR_FREFLAG(hspi);
+    }
+
+    /* SPI Underrun error interrupt occurred ------------------------------------*/
+    if ((trigger & SPI_FLAG_UDR) != 0UL)
+    {
+      SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_UDR);
+      __HAL_SPI_CLEAR_UDRFLAG(hspi);
+    }
+
+    if (hspi->ErrorCode != HAL_SPI_ERROR_NONE)
+    {
+      /* Disable SPI peripheral */
+      __HAL_SPI_DISABLE(hspi);
+
+      /* Disable all interrupts */
+      __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_EOT | SPI_IT_RXP | SPI_IT_TXP | SPI_IT_MODF |
+                                  SPI_IT_OVR | SPI_IT_FRE | SPI_IT_UDR));
+
+      /* Disable the SPI DMA requests if enabled */
+      if (HAL_IS_BIT_SET(cfg1, SPI_CFG1_TXDMAEN | SPI_CFG1_RXDMAEN))
+      {
+        /* Disable the SPI DMA requests */
+        CLEAR_BIT(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN | SPI_CFG1_RXDMAEN);
+
+        /* Abort the SPI DMA Rx channel */
+        if (hspi->hdmarx != NULL)
+        {
+          /* Set the SPI DMA Abort callback :
+          will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */
+          hspi->hdmarx->XferAbortCallback = SPI_DMAAbortOnError;
+          if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx))
+          {
+            SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT);
+          }
+        }
+        /* Abort the SPI DMA Tx channel */
+        if (hspi->hdmatx != NULL)
+        {
+          /* Set the SPI DMA Abort callback :
+          will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */
+          hspi->hdmatx->XferAbortCallback = SPI_DMAAbortOnError;
+          if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx))
+          {
+            SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT);
+          }
+        }
+      }
+      else
+      {
+        /* Restore hspi->State to Ready */
+        hspi->State = HAL_SPI_STATE_READY;
+
+        /* Call user error callback */
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+        hspi->ErrorCallback(hspi);
+#else
+        HAL_SPI_ErrorCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+      }
+    }
+    return;
+  }
+}
+
+/**
+  * @brief Tx Transfer completed callback.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_TxCpltCallback should be implemented in the user file
+   */
+}
+
+/**
+  * @brief Rx Transfer completed callback.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_RxCpltCallback should be implemented in the user file
+   */
+}
+
+/**
+  * @brief Tx and Rx Transfer completed callback.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_TxRxCpltCallback should be implemented in the user file
+   */
+}
+
+/**
+  * @brief Tx Half Transfer completed callback.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_TxHalfCpltCallback should be implemented in the user file
+   */
+}
+
+/**
+  * @brief Rx Half Transfer completed callback.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_RxHalfCpltCallback() should be implemented in the user file
+   */
+}
+
+/**
+  * @brief Tx and Rx Half Transfer callback.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_TxRxHalfCpltCallback() should be implemented in the user file
+   */
+}
+
+/**
+  * @brief SPI error callback.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+__weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_ErrorCallback should be implemented in the user file
+   */
+  /* NOTE : The ErrorCode parameter in the hspi handle is updated by the SPI processes
+            and user can use HAL_SPI_GetError() API to check the latest error occurred
+   */
+}
+
+/**
+  * @brief  SPI Abort Complete callback.
+  * @param  hspi SPI handle.
+  * @retval None
+  */
+__weak void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_AbortCpltCallback can be implemented in the user file.
+   */
+}
+
+/**
+  * @brief  SPI Suspend callback.
+  * @param  hspi SPI handle.
+  * @retval None
+  */
+__weak void HAL_SPI_SuspendCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hspi);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_SPI_SuspendCallback can be implemented in the user file.
+   */
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup SPI_Exported_Functions_Group3 Peripheral State and Errors functions
+  * @brief   SPI control functions
+  *
+@verbatim
+ ===============================================================================
+                      ##### Peripheral State and Errors functions #####
+ ===============================================================================
+    [..]
+    This subsection provides a set of functions allowing to control the SPI.
+     (+) HAL_SPI_GetState() API can be helpful to check in run-time the state of the SPI peripheral
+     (+) HAL_SPI_GetError() check in run-time Errors occurring during communication
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Return the SPI handle state.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval SPI state
+  */
+HAL_SPI_StateTypeDef HAL_SPI_GetState(const SPI_HandleTypeDef *hspi)
+{
+  /* Return SPI handle state */
+  return hspi->State;
+}
+
+/**
+  * @brief  Return the SPI error code.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval SPI error code in bitmap format
+  */
+uint32_t HAL_SPI_GetError(const SPI_HandleTypeDef *hspi)
+{
+  /* Return SPI ErrorCode */
+  return hspi->ErrorCode;
+}
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/** @addtogroup SPI_Private_Functions
+  * @brief   Private functions
+  * @{
+  */
+
+/**
+  * @brief DMA SPI transmit process complete callback.
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA module.
+  * @retval None
+  */
+static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma)
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
+
+  if (hspi->State != HAL_SPI_STATE_ABORT)
+  {
+    if (hspi->hdmatx->Init.Mode == DMA_CIRCULAR)
+    {
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+      hspi->TxCpltCallback(hspi);
+#else
+      HAL_SPI_TxCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+    }
+    else
+    {
+      /* Enable EOT interrupt */
+      __HAL_SPI_ENABLE_IT(hspi, SPI_IT_EOT);
+    }
+  }
+}
+
+/**
+  * @brief DMA SPI receive process complete callback.
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA module.
+  * @retval None
+  */
+static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
+
+  if (hspi->State != HAL_SPI_STATE_ABORT)
+  {
+    if (hspi->hdmarx->Init.Mode == DMA_CIRCULAR)
+    {
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+      hspi->RxCpltCallback(hspi);
+#else
+      HAL_SPI_RxCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+    }
+    else
+    {
+      /* Enable EOT interrupt */
+      __HAL_SPI_ENABLE_IT(hspi, SPI_IT_EOT);
+    }
+  }
+}
+
+/**
+  * @brief  DMA SPI transmit receive process complete callback.
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA module.
+  * @retval None
+  */
+static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma)
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
+
+  if (hspi->State != HAL_SPI_STATE_ABORT)
+  {
+    if (hspi->hdmatx->Init.Mode == DMA_CIRCULAR)
+    {
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+      hspi->TxRxCpltCallback(hspi);
+#else
+      HAL_SPI_TxRxCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+    }
+    else
+    {
+      /* Enable EOT interrupt */
+      __HAL_SPI_ENABLE_IT(hspi, SPI_IT_EOT);
+    }
+  }
+}
+
+/**
+  * @brief  DMA SPI half transmit process complete callback.
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA module.
+  * @retval None
+  */
+static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)
+                            ((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation MISRAC2012-Rule-8.13 */
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+  hspi->TxHalfCpltCallback(hspi);
+#else
+  HAL_SPI_TxHalfCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SPI half receive process complete callback
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA module.
+  * @retval None
+  */
+static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)
+                            ((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation MISRAC2012-Rule-8.13 */
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+  hspi->RxHalfCpltCallback(hspi);
+#else
+  HAL_SPI_RxHalfCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SPI half transmit receive process complete callback.
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA module.
+  * @retval None
+  */
+static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma) /* Derogation MISRAC2012-Rule-8.13 */
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)
+                            ((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation MISRAC2012-Rule-8.13 */
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+  hspi->TxRxHalfCpltCallback(hspi);
+#else
+  HAL_SPI_TxRxHalfCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SPI communication error callback.
+  * @param  hdma: pointer to a DMA_HandleTypeDef structure that contains
+  *               the configuration information for the specified DMA module.
+  * @retval None
+  */
+static void SPI_DMAError(DMA_HandleTypeDef *hdma)
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
+
+  /* if DMA error is FIFO error ignore it */
+  if (HAL_DMA_GetError(hdma) != HAL_DMA_ERROR_FE)
+  {
+    /* Call SPI standard close procedure */
+    SPI_CloseTransfer(hspi);
+
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA);
+    hspi->State = HAL_SPI_STATE_READY;
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+    hspi->ErrorCallback(hspi);
+#else
+    HAL_SPI_ErrorCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+  }
+}
+
+/**
+  * @brief  DMA SPI communication abort callback, when initiated by HAL services on Error
+  *         (To be called at end of DMA Abort procedure following error occurrence).
+  * @param  hdma DMA handle.
+  * @retval None
+  */
+static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma)
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
+  hspi->RxXferCount = (uint16_t) 0UL;
+  hspi->TxXferCount = (uint16_t) 0UL;
+
+  /* Restore hspi->State to Ready */
+  hspi->State = HAL_SPI_STATE_READY;
+
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+  hspi->ErrorCallback(hspi);
+#else
+  HAL_SPI_ErrorCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SPI Tx communication abort callback, when initiated by user
+  *         (To be called at end of DMA Tx Abort procedure following user abort request).
+  * @note   When this callback is executed, User Abort complete call back is called only if no
+  *         Abort still ongoing for Rx DMA Handle.
+  * @param  hdma DMA handle.
+  * @retval None
+  */
+static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
+
+  hspi->hdmatx->XferAbortCallback = NULL;
+
+  /* Check if an Abort process is still ongoing */
+  if (hspi->hdmarx != NULL)
+  {
+    if (hspi->hdmarx->XferAbortCallback != NULL)
+    {
+      return;
+    }
+  }
+
+  /* Call the Abort procedure */
+  SPI_AbortTransfer(hspi);
+
+  /* Restore hspi->State to Ready */
+  hspi->State = HAL_SPI_STATE_READY;
+
+  /* Call user Abort complete callback */
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+  hspi->AbortCpltCallback(hspi);
+#else
+  HAL_SPI_AbortCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SPI Rx communication abort callback, when initiated by user
+  *         (To be called at end of DMA Rx Abort procedure following user abort request).
+  * @note   When this callback is executed, User Abort complete call back is called only if no
+  *         Abort still ongoing for Tx DMA Handle.
+  * @param  hdma DMA handle.
+  * @retval None
+  */
+static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
+{
+  SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
+
+  hspi->hdmarx->XferAbortCallback = NULL;
+
+  /* Check if an Abort process is still ongoing */
+  if (hspi->hdmatx != NULL)
+  {
+    if (hspi->hdmatx->XferAbortCallback != NULL)
+    {
+      return;
+    }
+  }
+
+  /* Call the Abort procedure */
+  SPI_AbortTransfer(hspi);
+
+  /* Restore hspi->State to Ready */
+  hspi->State = HAL_SPI_STATE_READY;
+
+  /* Call user Abort complete callback */
+#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1UL)
+  hspi->AbortCpltCallback(hspi);
+#else
+  HAL_SPI_AbortCpltCallback(hspi);
+#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  Manage the receive 8-bit in Interrupt context.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+static void SPI_RxISR_8BIT(SPI_HandleTypeDef *hspi)
+{
+  /* Receive data in 8 Bit mode */
+  *((uint8_t *)hspi->pRxBuffPtr) = (*(__IO uint8_t *)&hspi->Instance->RXDR);
+  hspi->pRxBuffPtr += sizeof(uint8_t);
+  hspi->RxXferCount--;
+
+  /* Disable IT if no more data excepted */
+  if (hspi->RxXferCount == 0UL)
+  {
+#if defined(USE_SPI_RELOAD_TRANSFER)
+    /* Check if there is any request to reload */
+    if (hspi->Reload.Requested == 1UL)
+    {
+      hspi->RxXferSize  = hspi->Reload.RxXferSize;
+      hspi->RxXferCount = hspi->Reload.RxXferSize;
+      hspi->pRxBuffPtr  = hspi->Reload.pRxBuffPtr;
+      hspi->Reload.Requested = 0UL;
+    }
+    else
+    {
+      /* Disable RXP interrupts */
+      __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXP);
+    }
+#else
+    /* Disable RXP interrupts */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXP);
+#endif /* USE_SPI_RELOAD_TRANSFER */
+  }
+}
+
+
+/**
+  * @brief  Manage the 16-bit receive in Interrupt context.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+static void SPI_RxISR_16BIT(SPI_HandleTypeDef *hspi)
+{
+  /* Receive data in 16 Bit mode */
+#if defined (__GNUC__)
+  __IO uint16_t *prxdr_16bits = (__IO uint16_t *)(&(hspi->Instance->RXDR));
+
+  *((uint16_t *)hspi->pRxBuffPtr) = *prxdr_16bits;
+#else
+  *((uint16_t *)hspi->pRxBuffPtr) = (*(__IO uint16_t *)&hspi->Instance->RXDR);
+#endif /* __GNUC__ */
+  hspi->pRxBuffPtr += sizeof(uint16_t);
+  hspi->RxXferCount--;
+
+  /* Disable IT if no more data excepted */
+  if (hspi->RxXferCount == 0UL)
+  {
+#if defined(USE_SPI_RELOAD_TRANSFER)
+    /* Check if there is any request to reload */
+    if (hspi->Reload.Requested == 1UL)
+    {
+      hspi->RxXferSize  = hspi->Reload.RxXferSize;
+      hspi->RxXferCount = hspi->Reload.RxXferSize;
+      hspi->pRxBuffPtr  = hspi->Reload.pRxBuffPtr;
+      hspi->Reload.Requested = 0UL;
+    }
+    else
+    {
+      /* Disable RXP interrupts */
+      __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXP);
+    }
+#else
+    /* Disable RXP interrupts */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXP);
+#endif /* USE_SPI_RELOAD_TRANSFER */
+  }
+}
+
+
+/**
+  * @brief  Manage the 32-bit receive in Interrupt context.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+static void SPI_RxISR_32BIT(SPI_HandleTypeDef *hspi)
+{
+  /* Receive data in 32 Bit mode */
+  *((uint32_t *)hspi->pRxBuffPtr) = (*(__IO uint32_t *)&hspi->Instance->RXDR);
+  hspi->pRxBuffPtr += sizeof(uint32_t);
+  hspi->RxXferCount--;
+
+  /* Disable IT if no more data excepted */
+  if (hspi->RxXferCount == 0UL)
+  {
+#if defined(USE_SPI_RELOAD_TRANSFER)
+    /* Check if there is any request to reload */
+    if (hspi->Reload.Requested == 1UL)
+    {
+      hspi->RxXferSize  = hspi->Reload.RxXferSize;
+      hspi->RxXferCount = hspi->Reload.RxXferSize;
+      hspi->pRxBuffPtr  = hspi->Reload.pRxBuffPtr;
+      hspi->Reload.Requested = 0UL;
+    }
+    else
+    {
+      /* Disable RXP interrupts */
+      __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXP);
+    }
+#else
+    /* Disable RXP interrupts */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXP);
+#endif /* USE_SPI_RELOAD_TRANSFER */
+  }
+}
+
+
+/**
+  * @brief  Handle the data 8-bit transmit in Interrupt mode.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+static void SPI_TxISR_8BIT(SPI_HandleTypeDef *hspi)
+{
+  /* Transmit data in 8 Bit mode */
+  *(__IO uint8_t *)&hspi->Instance->TXDR = *((const uint8_t *)hspi->pTxBuffPtr);
+  hspi->pTxBuffPtr += sizeof(uint8_t);
+  hspi->TxXferCount--;
+
+  /* Disable IT if no more data excepted */
+  if (hspi->TxXferCount == 0UL)
+  {
+#if defined(USE_SPI_RELOAD_TRANSFER)
+    /* Check if there is any request to reload */
+    if (hspi->Reload.Requested == 1UL)
+    {
+      hspi->TxXferSize  = hspi->Reload.TxXferSize;
+      hspi->TxXferCount = hspi->Reload.TxXferSize;
+      hspi->pTxBuffPtr  = hspi->Reload.pTxBuffPtr;
+
+      /* In full duplex mode the reload request is reset in RX side */
+      if (hspi->State == HAL_SPI_STATE_BUSY_TX)
+      {
+        hspi->Reload.Requested = 0UL;
+      }
+    }
+    else
+    {
+      /* Disable TXP interrupts */
+      __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXP);
+    }
+#else
+    /* Disable TXP interrupts */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXP);
+#endif /* USE_SPI_RELOAD_TRANSFER */
+  }
+}
+
+/**
+  * @brief  Handle the data 16-bit transmit in Interrupt mode.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+static void SPI_TxISR_16BIT(SPI_HandleTypeDef *hspi)
+{
+  /* Transmit data in 16 Bit mode */
+#if defined (__GNUC__)
+  __IO uint16_t *ptxdr_16bits = (__IO uint16_t *)(&(hspi->Instance->TXDR));
+
+  *ptxdr_16bits = *((const uint16_t *)hspi->pTxBuffPtr);
+#else
+  *((__IO uint16_t *)&hspi->Instance->TXDR) = *((const uint16_t *)hspi->pTxBuffPtr);
+#endif /* __GNUC__ */
+  hspi->pTxBuffPtr += sizeof(uint16_t);
+  hspi->TxXferCount--;
+
+  /* Disable IT if no more data excepted */
+  if (hspi->TxXferCount == 0UL)
+  {
+#if defined(USE_SPI_RELOAD_TRANSFER)
+    /* Check if there is any request to reload */
+    if (hspi->Reload.Requested == 1UL)
+    {
+      hspi->TxXferSize  = hspi->Reload.TxXferSize;
+      hspi->TxXferCount = hspi->Reload.TxXferSize;
+      hspi->pTxBuffPtr  = hspi->Reload.pTxBuffPtr;
+
+      /* In full duplex mode the reload request is reset in RX side */
+      if (hspi->State == HAL_SPI_STATE_BUSY_TX)
+      {
+        hspi->Reload.Requested = 0UL;
+      }
+    }
+    else
+    {
+      /* Disable TXP interrupts */
+      __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXP);
+    }
+#else
+    /* Disable TXP interrupts */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXP);
+#endif /* USE_SPI_RELOAD_TRANSFER */
+  }
+}
+
+/**
+  * @brief  Handle the data 32-bit transmit in Interrupt mode.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+static void SPI_TxISR_32BIT(SPI_HandleTypeDef *hspi)
+{
+  /* Transmit data in 32 Bit mode */
+  *((__IO uint32_t *)&hspi->Instance->TXDR) = *((const uint32_t *)hspi->pTxBuffPtr);
+  hspi->pTxBuffPtr += sizeof(uint32_t);
+  hspi->TxXferCount--;
+
+  /* Disable IT if no more data excepted */
+  if (hspi->TxXferCount == 0UL)
+  {
+#if defined(USE_SPI_RELOAD_TRANSFER)
+    /* Check if there is any request to reload */
+    if (hspi->Reload.Requested == 1UL)
+    {
+      hspi->TxXferSize  = hspi->Reload.TxXferSize;
+      hspi->TxXferCount = hspi->Reload.TxXferSize;
+      hspi->pTxBuffPtr  = hspi->Reload.pTxBuffPtr;
+
+      /* In full duplex mode the reload request is reset in RX side */
+      if (hspi->State == HAL_SPI_STATE_BUSY_TX)
+      {
+        hspi->Reload.Requested = 0UL;
+      }
+    }
+    else
+    {
+      /* Disable TXP interrupts */
+      __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXP);
+    }
+#else
+    /* Disable TXP interrupts */
+    __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXP);
+#endif /* USE_SPI_RELOAD_TRANSFER */
+  }
+}
+
+/**
+  * @brief  Abort Transfer and clear flags.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval None
+  */
+static void SPI_AbortTransfer(SPI_HandleTypeDef *hspi)
+{
+  /* Disable SPI peripheral */
+  __HAL_SPI_DISABLE(hspi);
+
+  /* Disable ITs */
+  __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_EOT | SPI_IT_TXP | SPI_IT_RXP | SPI_IT_DXP | SPI_IT_UDR | SPI_IT_OVR | \
+                              SPI_IT_FRE | SPI_IT_MODF));
+
+  /* Clear the Status flags in the SR register */
+  __HAL_SPI_CLEAR_EOTFLAG(hspi);
+  __HAL_SPI_CLEAR_TXTFFLAG(hspi);
+
+  /* Disable Tx DMA Request */
+  CLEAR_BIT(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN | SPI_CFG1_RXDMAEN);
+
+  /* Clear the Error flags in the SR register */
+  __HAL_SPI_CLEAR_OVRFLAG(hspi);
+  __HAL_SPI_CLEAR_UDRFLAG(hspi);
+  __HAL_SPI_CLEAR_FREFLAG(hspi);
+  __HAL_SPI_CLEAR_MODFFLAG(hspi);
+  __HAL_SPI_CLEAR_SUSPFLAG(hspi);
+
+#if (USE_SPI_CRC != 0U)
+  __HAL_SPI_CLEAR_CRCERRFLAG(hspi);
+#endif /* USE_SPI_CRC */
+
+  hspi->TxXferCount = (uint16_t)0UL;
+  hspi->RxXferCount = (uint16_t)0UL;
+}
+
+
+/**
+  * @brief  Close Transfer and clear flags.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval HAL_ERROR: if any error detected
+  *         HAL_OK: if nothing detected
+  */
+static void SPI_CloseTransfer(SPI_HandleTypeDef *hspi)
+{
+  uint32_t itflag = hspi->Instance->SR;
+
+  __HAL_SPI_CLEAR_EOTFLAG(hspi);
+  __HAL_SPI_CLEAR_TXTFFLAG(hspi);
+
+  /* Disable SPI peripheral */
+  __HAL_SPI_DISABLE(hspi);
+
+  /* Disable ITs */
+  __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_EOT | SPI_IT_TXP | SPI_IT_RXP | SPI_IT_DXP | SPI_IT_UDR | SPI_IT_OVR | \
+                              SPI_IT_FRE | SPI_IT_MODF));
+
+  /* Disable Tx DMA Request */
+  CLEAR_BIT(hspi->Instance->CFG1, SPI_CFG1_TXDMAEN | SPI_CFG1_RXDMAEN);
+
+  /* Report UnderRun error for non RX Only communication */
+  if (hspi->State != HAL_SPI_STATE_BUSY_RX)
+  {
+    if ((itflag & SPI_FLAG_UDR) != 0UL)
+    {
+      SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_UDR);
+      __HAL_SPI_CLEAR_UDRFLAG(hspi);
+    }
+  }
+
+  /* Report OverRun error for non TX Only communication */
+  if (hspi->State != HAL_SPI_STATE_BUSY_TX)
+  {
+    if ((itflag & SPI_FLAG_OVR) != 0UL)
+    {
+      SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR);
+      __HAL_SPI_CLEAR_OVRFLAG(hspi);
+    }
+
+#if (USE_SPI_CRC != 0UL)
+    /* Check if CRC error occurred */
+    if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)
+    {
+      if ((itflag & SPI_FLAG_CRCERR) != 0UL)
+      {
+        SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC);
+        __HAL_SPI_CLEAR_CRCERRFLAG(hspi);
+      }
+    }
+#endif /* USE_SPI_CRC */
+  }
+
+  /* SPI Mode Fault error interrupt occurred -------------------------------*/
+  if ((itflag & SPI_FLAG_MODF) != 0UL)
+  {
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_MODF);
+    __HAL_SPI_CLEAR_MODFFLAG(hspi);
+  }
+
+  /* SPI Frame error interrupt occurred ------------------------------------*/
+  if ((itflag & SPI_FLAG_FRE) != 0UL)
+  {
+    SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE);
+    __HAL_SPI_CLEAR_FREFLAG(hspi);
+  }
+
+  hspi->TxXferCount = (uint16_t)0UL;
+  hspi->RxXferCount = (uint16_t)0UL;
+}
+
+/**
+  * @brief Handle SPI Communication Timeout.
+  * @param hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *              the configuration information for SPI module.
+  * @param Flag: SPI flag to check
+  * @param Status: flag state to check
+  * @param Timeout: Timeout duration
+  * @param Tickstart: Tick start value
+  * @retval HAL status
+  */
+static HAL_StatusTypeDef SPI_WaitOnFlagUntilTimeout(const SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus Status,
+                                                    uint32_t Timeout, uint32_t Tickstart)
+{
+  /* Wait until flag is set */
+  while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) == Status)
+  {
+    /* Check for the Timeout */
+    if ((((HAL_GetTick() - Tickstart) >=  Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
+    {
+      return HAL_TIMEOUT;
+    }
+  }
+  return HAL_OK;
+}
+
+/**
+  * @brief  Compute configured packet size from fifo perspective.
+  * @param  hspi: pointer to a SPI_HandleTypeDef structure that contains
+  *               the configuration information for SPI module.
+  * @retval Packet size occupied in the fifo
+  */
+static uint32_t SPI_GetPacketSize(const SPI_HandleTypeDef *hspi)
+{
+  uint32_t fifo_threashold = (hspi->Init.FifoThreshold >> SPI_CFG1_FTHLV_Pos) + 1UL;
+  uint32_t data_size       = (hspi->Init.DataSize      >> SPI_CFG1_DSIZE_Pos) + 1UL;
+
+  /* Convert data size to Byte */
+  data_size = (data_size + 7UL) / 8UL;
+
+  return data_size * fifo_threashold;
+}
+
+/**
+  * @}
+  */
+
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
Index: /ctrl/firmware/Main/CubeMX/charger.ioc
===================================================================
--- /ctrl/firmware/Main/CubeMX/charger.ioc	(revision 44)
+++ /ctrl/firmware/Main/CubeMX/charger.ioc	(revision 45)
@@ -7,4 +7,24 @@
 CORTEX_M7.IPParameters=default_mode_Activation,CPU_ICache,CPU_DCache
 CORTEX_M7.default_mode_Activation=1
+Dma.Request0=SPI4_TX
+Dma.RequestsNb=1
+Dma.SPI4_TX.0.Direction=DMA_MEMORY_TO_PERIPH
+Dma.SPI4_TX.0.EventEnable=DISABLE
+Dma.SPI4_TX.0.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.SPI4_TX.0.Instance=DMA1_Stream0
+Dma.SPI4_TX.0.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
+Dma.SPI4_TX.0.MemInc=DMA_MINC_ENABLE
+Dma.SPI4_TX.0.Mode=DMA_NORMAL
+Dma.SPI4_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
+Dma.SPI4_TX.0.PeriphInc=DMA_PINC_DISABLE
+Dma.SPI4_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.SPI4_TX.0.Priority=DMA_PRIORITY_LOW
+Dma.SPI4_TX.0.RequestNumber=1
+Dma.SPI4_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.SPI4_TX.0.SignalID=NONE
+Dma.SPI4_TX.0.SyncEnable=DISABLE
+Dma.SPI4_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.SPI4_TX.0.SyncRequestNumber=1
+Dma.SPI4_TX.0.SyncSignalID=NONE
 File.Version=6
 GPIO.groupedBy=
@@ -15,10 +35,12 @@
 Mcu.Family=STM32H7
 Mcu.IP0=CORTEX_M7
-Mcu.IP1=MEMORYMAP
-Mcu.IP2=NVIC
-Mcu.IP3=RCC
-Mcu.IP4=RTC
-Mcu.IP5=SYS
-Mcu.IPNb=6
+Mcu.IP1=DMA
+Mcu.IP2=MEMORYMAP
+Mcu.IP3=NVIC
+Mcu.IP4=RCC
+Mcu.IP5=RTC
+Mcu.IP6=SPI4
+Mcu.IP7=SYS
+Mcu.IPNb=8
 Mcu.Name=STM32H723ZETx
 Mcu.Package=LQFP144
@@ -27,8 +49,11 @@
 Mcu.Pin2=PH0-OSC_IN
 Mcu.Pin3=PH1-OSC_OUT
-Mcu.Pin4=VP_RTC_VS_RTC_Activate
-Mcu.Pin5=VP_SYS_VS_Systick
-Mcu.Pin6=VP_MEMORYMAP_VS_MEMORYMAP
-Mcu.PinsNb=7
+Mcu.Pin4=PE11
+Mcu.Pin5=PE12
+Mcu.Pin6=PE14
+Mcu.Pin7=VP_RTC_VS_RTC_Activate
+Mcu.Pin8=VP_SYS_VS_Systick
+Mcu.Pin9=VP_MEMORYMAP_VS_MEMORYMAP
+Mcu.PinsNb=10
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
@@ -37,4 +62,5 @@
 MxDb.Version=DB.6.0.130
 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.ForceEnableDMAVector=true
@@ -44,4 +70,5 @@
 NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.SPI4_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
@@ -51,4 +78,19 @@
 PC15-OSC32_OUT.Mode=LSE-External-Oscillator
 PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
+PE11.GPIOParameters=GPIO_Label
+PE11.GPIO_Label=SPI4_NSS_DISPLAY
+PE11.Locked=true
+PE11.Mode=NSS_Signal_Hard_Output
+PE11.Signal=SPI4_NSS
+PE12.GPIOParameters=GPIO_Label
+PE12.GPIO_Label=SPI4_SCK_DISPLAY
+PE12.Locked=true
+PE12.Mode=Simplex_Bidirectional_Master
+PE12.Signal=SPI4_SCK
+PE14.GPIOParameters=GPIO_Label
+PE14.GPIO_Label=SPI4_MOSI_DISPLAY
+PE14.Locked=true
+PE14.Mode=Simplex_Bidirectional_Master
+PE14.Signal=SPI4_MOSI
 PH0-OSC_IN.Mode=HSE-External-Oscillator
 PH0-OSC_IN.Signal=RCC_OSC_IN
@@ -86,6 +128,6 @@
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
-RCC.ADCFreq_Value=100000000
+ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
+RCC.ADCFreq_Value=166666666.66666666
 RCC.AHB12Freq_Value=100000000
 RCC.AHB4Freq_Value=100000000
@@ -102,18 +144,19 @@
 RCC.DFSDMACLkFreq_Value=100000000
 RCC.DFSDMFreq_Value=100000000
-RCC.DIVM1=25
-RCC.DIVM2=25
+RCC.DIVM1=5
+RCC.DIVM2=3
 RCC.DIVM3=25
-RCC.DIVN1=200
-RCC.DIVN2=200
+RCC.DIVN1=40
+RCC.DIVN2=40
 RCC.DIVN3=200
 RCC.DIVP1Freq_Value=100000000
-RCC.DIVP2Freq_Value=100000000
+RCC.DIVP2Freq_Value=166666666.66666666
 RCC.DIVP3Freq_Value=100000000
 RCC.DIVQ1Freq_Value=100000000
-RCC.DIVQ2Freq_Value=100000000
+RCC.DIVQ2=11
+RCC.DIVQ2Freq_Value=30303030.3030303
 RCC.DIVQ3Freq_Value=100000000
 RCC.DIVR1Freq_Value=100000000
-RCC.DIVR2Freq_Value=100000000
+RCC.DIVR2Freq_Value=166666666.66666666
 RCC.DIVR3Freq_Value=100000000
 RCC.FDCANFreq_Value=100000000
@@ -124,5 +167,5 @@
 RCC.I2C123Freq_Value=100000000
 RCC.I2C4Freq_Value=100000000
-RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVM3,DIVN1,DIVN2,DIVN3,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLLSourceVirtual,QSPIFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
+RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVM3,DIVN1,DIVN2,DIVN3,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLLFRACN,PLLSourceVirtual,QSPIFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Spi45ClockSelection,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
 RCC.LPTIM1Freq_Value=100000000
 RCC.LPTIM2Freq_Value=100000000
@@ -132,4 +175,6 @@
 RCC.MCO1PinFreq_Value=64000000
 RCC.MCO2PinFreq_Value=100000000
+RCC.PLL2FRACN=0
+RCC.PLLFRACN=0
 RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
 RCC.QSPIFreq_Value=100000000
@@ -143,9 +188,10 @@
 RCC.SPDIFRXFreq_Value=100000000
 RCC.SPI123Freq_Value=100000000
-RCC.SPI45Freq_Value=100000000
+RCC.SPI45Freq_Value=30303030.3030303
 RCC.SPI6Freq_Value=100000000
 RCC.SWPMI1Freq_Value=100000000
 RCC.SYSCLKFreq_VALUE=100000000
 RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
+RCC.Spi45ClockSelection=RCC_SPI45CLKSOURCE_PLL2
 RCC.Tim1OutputFreq_Value=100000000
 RCC.Tim2OutputFreq_Value=100000000
@@ -155,9 +201,17 @@
 RCC.USBFreq_Value=100000000
 RCC.VCO1OutputFreq_Value=200000000
-RCC.VCO2OutputFreq_Value=200000000
+RCC.VCO2OutputFreq_Value=333333333.3333333
 RCC.VCO3OutputFreq_Value=200000000
-RCC.VCOInput1Freq_Value=1000000
-RCC.VCOInput2Freq_Value=1000000
+RCC.VCOInput1Freq_Value=5000000
+RCC.VCOInput2Freq_Value=8333333.333333333
 RCC.VCOInput3Freq_Value=1000000
+SPI4.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2
+SPI4.CalculateBaudRate=15.151515 MBits/s
+SPI4.DataSize=SPI_DATASIZE_9BIT
+SPI4.Direction=SPI_DIRECTION_1LINE
+SPI4.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,VirtualNSS,DataSize,BaudRatePrescaler
+SPI4.Mode=SPI_MODE_MASTER
+SPI4.VirtualNSS=VM_NSSHARD
+SPI4.VirtualType=VM_MASTER
 VP_MEMORYMAP_VS_MEMORYMAP.Mode=CurAppReg
 VP_MEMORYMAP_VS_MEMORYMAP.Signal=MEMORYMAP_VS_MEMORYMAP
Index: /ctrl/firmware/Main/SES/Output/Release/Exe/charger.hex
===================================================================
--- /ctrl/firmware/Main/SES/Output/Release/Exe/charger.hex	(revision 44)
+++ /ctrl/firmware/Main/SES/Output/Release/Exe/charger.hex	(revision 45)
@@ -1,48 +1,48 @@
 :020000040800F2
-:1000000000800030970B0008AD070008AD0700081E
-:10001000AD070008AD070008AD07000800000000AC
-:10002000000000000000000000000000AF07000812
-:10003000AF07000800000000AF070008070B00082A
-:10004000AD070008AD070008AD070008AD070008C0
-:10005000AD070008AD070008AD070008AD070008B0
-:10006000AD070008AD070008AD070008AD070008A0
-:10007000AD070008AD070008AD070008AD07000890
-:10008000AD070008AD070008AD070008AD07000880
-:10009000AD070008AD070008AD070008AD07000870
-:1000A000AD070008AD070008AD070008AD07000860
-:1000B000AD070008AD070008AD070008AD07000850
-:1000C000AD070008AD070008AD070008AD07000840
-:1000D000AD070008AD070008AD070008AD07000830
-:1000E000AD070008AD07000800000000AD070008DC
-:1000F000AD070008AD070008AD070008AD07000810
-:10010000AD070008AD070008AD070008AD070008FF
-:10011000AD070008AD070008AD070008AD070008EF
-:10012000AD070008AD070008AD070008AD070008DF
-:10013000AD070008AD070008AD070008AD070008CF
+:10000000008000300D2300082D1700082D17000870
+:100010002D1700082D1700082D17000800000000FC
+:100020000000000000000000000000002F17000882
+:100030002F170008000000002F170008DD1A000825
+:100040002D1700082D1700082D1700082D17000880
+:100050002D1700082D1700082D1700082D17000870
+:100060002D1700082D1700082D170008ED1A00089D
+:100070002D1700082D1700082D1700082D17000850
+:100080002D1700082D1700082D1700082D17000840
+:100090002D1700082D1700082D1700082D17000830
+:1000A0002D1700082D1700082D1700082D17000820
+:1000B0002D1700082D1700082D1700082D17000810
+:1000C0002D1700082D1700082D1700082D17000800
+:1000D0002D1700082D1700082D1700082D170008F0
+:1000E0002D1700082D170008000000002D1700082C
+:1000F0002D1700082D1700082D1700082D170008D0
+:100100002D1700082D1700082D1700082D170008BF
+:100110002D1700082D1700082D1700082D170008AF
+:100120002D1700082D1700082D1700082D1700089F
+:100130002D1700082D1700082D1700082D1700088F
 :1001400000000000000000000000000000000000AF
-:10015000AD070008AD070008AD070008AD070008AF
-:10016000AD070008AD070008AD070008AD0700089F
-:10017000AD070008AD070008AD070008000000004B
-:10018000AD070008AD070008AD070008AD0700087F
-:10019000AD070008AD070008AD070008AD0700086F
-:1001A000AD070008AD070008AD070008000000001B
-:1001B000AD070008AD070008AD070008AD0700084F
-:1001C000AD070008AD0700080000000000000000B7
-:1001D0000000000000000000AD0700080000000063
+:100150002D1700082D1700082D1700082D1700086F
+:100160002D1700082D1700082D1700082D1700085F
+:100170002D1700082D1700082D170008000000009B
+:100180002D1700082D1700082D1700082D1700083F
+:10019000311700082D1700082D1700082D1700082B
+:1001A0002D1700082D1700082D170008000000006B
+:1001B0002D1700082D1700082D1700082D1700080F
+:1001C0002D1700082D170008000000000000000097
+:1001D00000000000000000002D17000800000000D3
 :1001E000000000000000000000000000000000000F
-:1001F0000000000000000000AD070008AD07000887
-:10020000AD070008AD07000800000000AD070008BA
-:10021000AD070008AD070008AD070008AD070008EE
-:10022000AD07000800000000AD0700080000000056
-:10023000AD070008AD07000800000000AD0700088A
-:10024000AD070008AD070008AD070008AD070008BE
-:10025000AD070008AD070008AD070008AD070008AE
-:10026000AD070008AD070008AD070008AD0700089E
-:10027000AD070008AD070008AD070008000000004A
-:10028000AD070008AD070008AD070008AD0700087E
-:1002900000000000AD070008AD07000800000000E6
-:1002A00000000000AD070008AD070008AD0700081A
-:1002B000AD070008AD070008AD070008AD0700084E
-:0C02C000AD070008AD070008AD070008FE
+:1001F00000000000000000002D1700082D17000867
+:100200002D1700082D170008000000002D1700080A
+:100210002D1700082D1700082D1700082D170008AE
+:100220002D170008000000002D1700080000000036
+:100230002D1700082D170008000000002D170008DA
+:100240002D1700082D1700082D1700082D1700087E
+:100250002D1700082D1700082D1700082D1700086E
+:100260002D1700082D1700082D1700082D1700085E
+:100270002D1700082D1700082D170008000000009A
+:100280002D1700082D1700082D1700082D1700083E
+:10029000000000002D1700082D17000800000000C6
+:1002A000000000002D1700082D1700082D1700086A
+:1002B0002D1700082D1700082D1700082D1700080E
+:0C02C0002D1700082D1700082D1700084E
 :1002CC0044F20041C5F602010869C0F3C2000328DC
 :1002DC0014D002280DD090BB0868800649F20000AB
@@ -62,143 +62,522 @@
 :1003BC00BCEEC00A10EE100A704700BF0024744A4D
 :0C03CC0020BCBE4B0024744C0000003923
-:1003D800034C206804348047FBE700F0F8FAFEE796
-:0403E800C00B00083E
-:1003EC0010B582B044F60C01C5F6020108680A6823
-:1003FC00400740F22400C3F200000DD5022363F342
-:10040C0002020A60026851F8083C9B0404D4036899
-:10041C009B1AB3F57A7FF6D900220192CA6802239F
-:10042C0063F38F32CA60CA6802F440420192019AA7
-:10043C00CA689204FCD544F20044C5F60204D4F810
-:10044C00001441F48071C4F80014216F21F01801DC
-:10045C002167216901F03802A16A102A07D0182AF5
-:10046C0040F0F48001F00301022940F0EF80216894
-:10047C00D4F8001441F48071C4F800140168D4F865
-:10048C000024D20504D40268521A642AF7D932E146
-:10049C00216F41F2883241F0010121670168236F1D
-:1004AC009B0704D403685B1A9342F8D923E12169B2
-:1004BC0001F03801182940F0D780A16A40F2F332DC
-:1004CC001140B1F5C97F216B40F015810A466FF3DD
-:1004DC005F22C72A40F00F8101F47E42B2F5007F03
-:1004EC0040F0098101F4FE02B2F5803F40F0038137
-:1004FC0001F0FE41B1F1807F40F0FD80616B4FF661
-:10050C00F872114210D0E16A21F00101E162016838
-:10051C0002688A42FCD0616B4FF6F87291436163BA
-:10052C00E16A41F00101E16242F2000CC5F2002CDB
-:10053C00DCF8002012070DD1DCF80020012363F356
-:10054C000302CCF80020DCF8002002F00F02012A94
-:10055C0040F0D280A269E269E269226AA269A269CA
-:10056C0022F47062A2612268920140F1C580226976
-:10057C00032363F302022261026841F2883321698A
-:10058C0001F03801182904D00168891A9942F6D96A
-:10059C00B2E0A06900071EBFA06920F00F00A061A7
-:1005AC00DCF8000010F00E0F0DD0DCF8000001217B
-:1005BC0061F30300CCF80000DCF8000000F00F0041
-:1005CC00012840F09980A06910F0700F1EBFA0693F
-:1005DC0020F07000A061E06910F0700F1EBFE069A0
-:1005EC0020F07000E061E06910F4E06F1EBFE0697C
-:1005FC0020F4E060E061206A10F0700F1EBF206AEA
-:10060C0020F070002062FFF75BFEA16940F6AE326D
-:10061C00C0F60002C1F30321515C40F22802C3F280
-:10062C000002A36940F22C0301F01F011278C3F2FF
-:10063C00000320FA01F11020002A196018BF0F20C6
-:10064C0000F063FA002857D102B010BD216841F4C4
-:10065C00803121600168226892033FF509AF02687E
-:10066C00521A642AF7D946E0216821F08071216082
-:10067C0001682268920104D50268521A022AF8D93C
-:10068C0039E0A16A40F2F33291434FF6F87201F56A
-:10069C00C971A16240F2C721C0F201112163E16A64
-:1006AC0021F00101E162616B91436163E16A21F028
-:1006BC000C01E162E16A41F00201E162E16A41F49C
-:1006CC008031E162E16A41F40031E162E16A41F4B6
-:1006DC008021E162E16A41F00101E162216841F0AF
-:1006EC00807121600168226892013FF51DAF02689C
-:0A06FC00521A022AF7D972B672B63C
-:100706004EF6885042F20003CEF20000C5F20023F6
-:10071600026842F470020260186800F00F000628B2
-:1007260004D81868072262F30300186044F20040F8
-:100736004EF67F51C5F60200CEF6F621026842F06B
-:100746000102026000220261D0F800C001EA0C0139
-:1007560001601968090705D519684FF0070C6CF395
-:100766000301196040F200218261C0F20221C261D8
-:10077600026281620021C0F2FF11C16240F2802153
-:10078600C0F20111016342638163C2630164426482
-:10079600016821F480210160026603F5005043F2EE
-:0607A600D2010160704762
-:0207AC00FEE766
-:0207AE00704792
-:1007B00010B582B04EF60C504FF6FF02CEF200009C
-:1007C00044F21844C5F602040168114040F20032B8
-:1007D000C0F2FA5211430160FFF778FD216840F63C
-:1007E000AE32C0F60002C1F30321515C226801F071
-:1007F0001F01C84040F22C01C3F2000108600F2025
-:1008000000F089F958B9D4F8DC0040F00200C4F8CF
-:10081000DC00D4F8DC0000F002000190019802B086
-:0208200010BD09
-:1008220070B540F20406C3F20006707F002856F845
-:10083200040C49D144F20001C5F6000188424FF090
-:100842000001317740D144F21041C5F60201D1F8DE
-:10085200F02342F48072C1F8F02340F22402C3F282
-:1008620000021368D1F8F053ED0504D41568ED1AAF
-:10087200642DF7D91BE00B6E03F44073B3F5807F50
-:100882000BD00B6E0D6E45F480350D660D6E23F4A4
-:10089200407325F480350D660B66136841F2893585
-:1008A2000C6EA40704D41468E41AAC42F8D372B6EE
-:1008B2000A6822F47C520A600A6E42F480720A6666
-:1008C2000A6E42F400420A6602217177C168C906C3
-:1008D20061D4CA21416253214162C168490613D4DD
-:1008E2004FF0FF31C16040F22401C3F200010A68F7
-:1008F200C3685B0608D40B689B1AB3F57A7FF7D9F5
-:1009020003217177C0682EE0816844F2080521F462
-:10091200E001C5F6000521F04001816096E81E0065
-:1009220021437469214384682143816043EA02417F
-:100932000161686820F0800068602868800605D43C
-:1009420000F02DF8C8B1032070770CE0286820F081
-:100952002000286000F023F858B10320707728683F
-:1009620040F02000286056F8040CFF214162032069
-:1009720070BD286840F02000286056F8040C3169E8
-:10098200B269C36C114323F00303C364C26C114305
-:0E099200C164FF21416201207077002070BD1A
-:1009A00040F200004FF65F71C3F20000C0F2030195
-:1009B0000068C16040F22401C3F200010A68C36804
-:1009C0009B0606D40B689B1AB3F57A7FF7D90320F0
-:0609D00070470020704793
-:1009D6004EF61450BFF35F8FCEF20000016921F48A
-:1009E600803101610021C0F88010C0F88410D0F871
-:1009F6008C2022F00102C0F88C2048F23F72C0F829
-:100A06008810C1F20402C0F88C200522C0F88020AC
-:100A1600026942F480320261BFF34F8FBFF36F8FDA
-:100A26000268920311D4BFF34F8FBFF36F8FC0F8E4
-:100A36003C12BFF34F8FBFF36F8F016841F4003153
-:100A46000160BFF34F8FBFF36F8F82B00168C90398
-:100A560026D400210167BFF34F8F43F6E07EC26EB6
-:100A66004FEAD20CC2F34E31C2F3C90301334A0135
-:100A760002EA0E041D4604EB8C74013DC0F84C429C
-:100A860004F14044F9D1203A0139F1D2BFF34F8F36
-:100A9600016841F480310160BFF34F8FBFF36F8F60
-:100AA600FFF783FEFFF79FFC44F2E040C5F6020025
-:100AB600016841F004010160016801F0040101913F
-:100AC6000199016841F080010160006844F200016B
-:100AD60000F08000009040F20000009AC3F200008F
-:100AE600C5F600017F2201600021C0E90112FF2244
-:100AF600C161C0E90321C0E90511FFF78FFE72B697
-:100B060040F22400C3F20000016801310160704721
-:100B160040F22C0144F6D352C3F20001C1F2620244
-:100B26000968A1FB02124FF0FF3101EB9212110E80
-:100B360001D0012070474EF210030F28CEF20003B9
-:100B46004FF0010003F6FC4C5A604FF0F0028CF8AF
-:100B560017204FF0070299601A6088BF7047DCF8CB
-:100B66000020C943C2F3022282F00703042B28BFE8
-:100B760004239940C943033A28BF914009018CF8E0
-:100B8600171040F22801C3F20001087000207047D8
-:100B9600FFF7B6FD4EF68850CEF20000016851F41C
-:080BA60070010160FFF715FC6E
-:100BAE00000000000000000001020304060708090F
-:100BC000E50B00080000003029000000F70B0008CA
-:100BD0002C000030E00B000804000000E3030008D4
-:040BE0000090D003AE
-:100BE400206861680834002200E042540139FCD5D1
-:020BF400704748
-:100BF60020686168A2680C3401E08B5C8354013A7A
-:040C0600FBD5704763
-:0400000508000B974D
+:1003D8002DE9F8430446C07844F210460007C5F6F4
+:1003E800020621D5606E4FEA3051032931D8DFE883
+:1003F80001F002070D16F16941F40031F1610EE0D8
+:1004080004F10800022101F08DFD04E004F1280048
+:10041800022101F00FFE5FEA000807D1606E316C1F
+:1004280021F44011084330644FF000086078C00799
+:1004380001D1454624E0A06D042835D84546DFE8BB
+:1004480000F003110B171700F06940F40030F06159
+:100458000EE04FF00108E9E704F12800002101F05F
+:10046800E9FD04E004F10800002101F05BFD054608
+:100478002F4635B9306CA16D20F007000843306471
+:100488004746607840072AD5D4F8A4004FEA705050
+:10049800052812D8DFE800F003140B1A1A1AF069BD
+:1004A80040F40030F06111E001250127E9E704F18B
+:1004B8002800002101F0BEFD07E00125A8460FE055
+:1004C80004F10800002101F02DFD0546A8463DB9BC
+:1004D800B06CD4F8A41020F460000843B064B846A7
+:1004E8006078000727D5D4F8A8004FEA30600528BF
+:1004F8000FD8DFE800F0031108171717F06940F468
+:100508000030F0610EE004F12800002101F092FDB6
+:1005180007E0012501270FE004F10800002101F0A0
+:1005280001FD05462F463DB9B06CD4F8A81020F05F
+:10053800E0600843B0644746E07880071BD5E06C6C
+:100548004FEA3010032829D8DFE800F00D02070D24
+:10055800F06940F40030F06105E004F10800022180
+:1005680001F0E0FC0546A84635B9F06BE16C20F0D7
+:1005780030000843F063B8466078C00625D5E06DC2
+:100588004FEA3030042835D8DFE800F003110B17A4
+:100598001700F06940F40030F0610EE00125A8462C
+:1005A800EAE704F12800002101F044FD04E004F129
+:1005B8000800002101F0B6FC05462F4635B9306C1D
+:1005C800E16D20F4E04008433064474660788006D7
+:1005D80021D5206E4FEA3040052800F2FB82DFE883
+:1005E80000F012030C12121204F10800012101F0AC
+:1005F80099FC07E001250127E8E704F1280001211B
+:1006080001F018FD0546A84635B9306C216E20F476
+:10061800E02008433064B8466078400620D5D4F816
+:10062800AC004FEA3070052800F2D782DFE800F00E
+:100638000F03090F0F0F04F10800012101F072FCEC
+:1006480004E004F12800012101F0F4FC05462F46DE
+:100658003DB9B06CD4F8AC1020F0E0400843B06469
+:100668004746607800061AD5E06E80B1B0F1005FA9
+:1006780007D0B0F1805F22D1F06940F40030F0611A
+:1006880005E004F10800012101F04CFC0546A846EC
+:1006980035B9306CE16E20F0405008433064B846FC
+:1006A800E078C0071CD0A06C03284BD8DFE800F026
+:1006B80010020A10F06940F40030F06108E00125EA
+:1006C800A846EDE704F10800022101F02BFC0546DD
+:1006D800294635B9F06BA16C20F003000843F0639C
+:1006E8004146D4E90002420201D4884617E0D6F810
+:1006F800F02342F48072C6F8F02340F22412C3F2C9
+:1007080000021368D6F8F073FF0506D41768FF1ABD
+:10071800642FF7D90325A84601E0A846ADB1C00764
+:1007280062D0A06F4FEAF000052800F25982DFE896
+:1007380000F053034D53535304F10800012101F015
+:10074800F1FB48E001250121CBE7336ED4F8B0C0B6
+:1007580083EA0C0313F4407F0BD0336E376E47F4F3
+:1007680080373766376E23F4407327F4803737664F
+:100778003366BCF5807F11D1176841F288330325B1
+:10078800D6F860805FEA887808D4D2F80080A8EBB1
+:10079800070898454FF00308F2D9C0E733684FF6C9
+:1007A800CF770CF4407223F47C53C0F2FF0707EABA
+:1007B8001C170025B2F5407F08BF3B4333606FF339
+:1007C8001F3C326E42EA0C0232668EE704F12800C2
+:1007D800012101F02FFC05462F4635B9706CA16F39
+:1007E80020F03800084370644746207880071CD5FD
+:1007F800606F052800F2F781DFE800F00F03090FAA
+:100808000F0F04F10800012101F08CFB04E004F152
+:100818002800012101F00EFC0546A84635B9706C88
+:10082800616F20F0070008437064B84620784007DD
+:100838001ED5D4F89000052800F2D881DFE800F032
+:100848000F03090F0F0F04F10800012101F06AFBE3
+:1008580004E004F12800012101F0ECFB0546A9465B
+:100868003DB9B06CD4F8901020F007000843B0648C
+:10087800C1462078800620D5D4F88C004FEA307025
+:10088800052800F2B681DFE800F00F03090F0F0F0B
+:1008980004F10800002101F045FB04E004F1280000
+:1008A800022101F0C7FB05462F463DB9706CD4F80C
+:1008B8008C1020F0E040084370644F4620784006D2
+:1008C80020D5D4F898004FEAB020052800F294818A
+:1008D800DFE800F00F03090F0F0F04F108000021F3
+:1008E80001F020FB04E004F12800022101F0A2FB42
+:1008F8000546A8463DB9B06CD4F8981020F4E050ED
+:100908000843B064B8462078000620D5D4F89C0087
+:100918004FEA7030052800F27281DFE800F00F031B
+:10092800090F0F0F04F10800002101F0FBFA04E0A1
+:1009380004F12800022101F07DFB05462F463DB950
+:10094800B06CD4F89C1020F460400843B06447466B
+:10095800D4E90001010715D5D4F88000B0F5805F0F
+:1009680009D104F12800022101F064FB002818BF16
+:100978000127D4F88000716C21F440510843706459
+:10098800D4E90001C10615D5D4F89400B0F5807FEC
+:1009980009D104F12800022101F04CFB002818BFFE
+:1009A8000127D4F89400B16C21F440710843B06475
+:1009B800D4E9000100031FD5D4F8A000B0F5003F2A
+:1009C80011D0B0F5803F08D0002840F0FB8004F13A
+:1009D8000800002101F0A6FA04E004F12800022131
+:1009E80001F028FB0546A8463DB9B06CD4F8A01024
+:1009F80020F440300843B064B846A07840071FD5BB
+:100A0800D4F88400B0F5401F11D0B0F5001F08D00D
+:100A1800B0F5801F40F0D980F06940F40030F061F3
+:100A280005E004F12800012101F004FB05462F46EA
+:100A38003DB9706CD4F8841020F4401008437064F9
+:100A48004746A078C00701D1B8461AE0206DB0F536
+:100A5800803F05D098B9F06940F40030F06105E0B6
+:100A680004F10800022101F05DFA0546A84645B9DF
+:100A7800F06B216D20F480300843F063E4E7012532
+:100A8800A846D4E900108A000AD504F128000221FA
+:100A980001F0D0FA002818BF4FF00108D4E900107F
+:100AA8008A0316D5E26F6FF0010303EB3223022BA2
+:100AB80009D34FEA322333B1012B40F08980F3691F
+:100AC80043F40033F3612DB9736C23F440731A4374
+:100AD80072644546CA0205D5326C236F22F0004283
+:100AE8001A4332648A0205D5326CA36E22F08072F2
+:100AF8001A4332644A0008D5326822F40042326050
+:100B0800D4F8B42033681A433260CA0F05D0F26BA8
+:100B1800636D22F040521A43F263090206D5716CE4
+:100B2800D4F8882021F4400111437164C10709D029
+:100B380004F10800002101F0F5F9002818BF054666
+:100B4800D4E90010810709D504F10800012101F05A
+:100B5800E9F9002818BF0546D4E90010410709D56E
+:100B680004F10800022101F0DDF9002818BF05464C
+:100B7800D4E90010010709D504F12800002101F08B
+:100B880059FA002818BF0546D4E90010C10609D54E
+:100B980004F12800012101F04DFA002818BF05468C
+:100BA800D4E90010800607D504F12800022101F0DD
+:100BB80041FA002818BF0125002D18BF0125284635
+:100BC800BDE8F8830125A84617E70125012738E77E
+:100BD80001257FE70125A8461EE50125012740E5F7
+:100BE8000125012701E60125A8461FE60125A9469A
+:100BF8003FE60125012761E60125A84683E6012590
+:040C08000127A5E635
+:100C0C00034C206804348047FBE700F07AFAFEE7D7
+:040C1C003423000875
+:100C200000220B0011001A0084465AB3830704D037
+:100C300000F8011B013AF9D124E0C9B241EA0121CF
+:100C400041EA0141202A11D3203A2DE9F0030B4655
+:100C50000C460D460E460F4688468946A0E8FA0324
+:100C6000203AFBD2BDE8F00320320BD0042A05D392
+:100C700040F8041B043A05D0042AF9D200F8011BFD
+:080C8000013AFBD16046704708
+:100C88002DE9F04FB1B040F2000443F60001C3F281
+:100C980000040020C4F200012768A06201F5784032
+:100CA8008F42A0F5744504D0AF4218BF874240F088
+:100CB800D580E26B0126E368083306EB5212DB08A5
+:100CC8008F4203FB02F218BF874240F0BB80102A14
+:100CD80000F2C88094F88100002840F081810CA8B7
+:100CE8009021002684F88060FFF796FF05F578408C
+:100CF800874240F075814FF400500221CDE9020689
+:100D08000320049028200B96CDE905010B20CDE99E
+:100D18000701C020CDE909064FF480301A9002A8D7
+:100D2800FFF756FB002840F0ED8144F2E04141F224
+:100D3800000CC5F60201C5F6020C4FF0010A4FF08F
+:100D48000F0E08694FF0050B40F400500861086960
+:100D5800002300F4005001900198086840F010004A
+:100D68000860096801F010010191019900210AFA4F
+:100D780003F919F4B04F2BD00320DCF8088000FAEF
+:100D880001F7C04328EA0705CCF80850DCF80450FE
+:100D980025EA0909CCF80490DCF80C9000EA530520
+:100DA80029EA07096544CCF80C9006F01C092A6A60
+:100DB8000EFA09F022EA00000BFA09F21043286241
+:100DC800DCF800000222B8438A401043CCF8000047
+:100DD8000133043602310F2BC9D140F28800542167
+:100DE800C3F20000002740F2241208254160402188
+:100DF800C0E902174FF4806101614FF4006141615D
+:100E08004FF40051C3F20002C4F202050226C0E901
+:100E18000617C0E908772946136880F8356051F845
+:100E2800086F016080F8347026F001070F60A96828
+:100E3800C90719D01168C91A0529F8D94FF0030E46
+:100E480020266AE0AF4218BF082A0BD805F574407F
+:100E5800874218BFAF423FF43AAF3BE7E2680F2A38
+:100E68007FF627AF01203DE148F23F02A968CFF69F
+:100E780010620A40D0E903391A43D0E9051E42EA54
+:100E88000902D0F82490D0E9076311433143D0E92F
+:100E98000BA71943B9F1040F47EA0A02D0E9018CFC
+:100EA80008BF1143A8F13F0241EA0C01132A41EAA5
+:100EB8000E0307D80121914040F20F32C0F20F0211
+:100EC800114204D1A8F12901062980F00E8143F4CA
+:100ED8008013AB60B9F1040FE96921F0070149EA11
+:100EE80001092CD1836ABAF1000F49EA030926D017
+:100EF800BEF5005F08D0BEF1000F18D1022B19D043
+:100F0800012B0ED0B3B11AE0032B18D84FF0010E05
+:100F18004026DFE803F0020F0206466580F835E058
+:100F280072B6AAF1C071B1FA81F14B0904E0032B42
+:100F380040F0E280CAF30063002B40F0DF8040F607
+:100F48008007C4F202070021C4F20201C5F81C9010
+:100F58000023C0E916133F210126BCF1800F296048
+:100F680005F5FF61C0E91817866604D14360C5F826
+:100F7800F8377E6016E0A8F101015FFA88F30729C7
+:100F8800C5F8F8377E600DD8013B082B0FD207EB68
+:100F9800880107F1C0027C3106FA03F3C0E91B128D
+:100FA800436707E000214167C0E91B1105E000F134
+:100FB8006C010EC900270F6053600021416580F85D
+:100FC8003560A06784634EF60C50CEF20000A0F6A0
+:100FD8000442006882F84C134FF4801010602768B0
+:100FE800022084F88100386820F001003860B86871
+:100FF800D4F81880B8F1806F00F4F81ED4F804A073
+:1010080010D1BAF1000F05D0BAF5800F0AD1A36B41
+:1010180073B903E0A36BB3F1805F06D13B6843F477
+:1010280080533B605FEA4A2302D44FF0010C0BE087
+:10103800E6684FF0000C072E06D33B68256D23F4B5
+:1010480080732B433B6004E03E6826F480763E6064
+:10105800E668E26946EA0E06A16A3243E66B114386
+:10106800D4F808B03143D4E90493B960D4E90D1534
+:10107800626A1143226A294341EA09011943D4E902
+:1010880012061143A26D314341EA0B010843104394
+:10109800BAF1000F40EA080040EA0A00F8600DD0F3
+:1010A800386DBCF1000F20F00100386514D1F868E4
+:1010B800616D20F000400843F8600DE0B868012138
+:1010C80061F3CC20B860B868022161F34A20B860A7
+:1010D800386D20F0010038650020C4F88400012133
+:1010E80084F8811031B0BDE8F08F28F0030174292D
+:1010F80008BF43F48013ECE6BFF421AF4FF0010EB4
+:0611080040260AE772B662
+:10110E00AEB04EF60C54BFF35F8FCEF20004A06962
+:10111E0020F48030A0610020C4F88800C4F88C0050
+:10112E00D4F8941021F00101C4F8941048F23F71E4
+:10113E00C4F89000C1F20401C4F894100521C4F85B
+:10114E008810A16941F48031A161BFF34F8FBFF3C5
+:10115E006F8FA168890311D4BFF34F8FBFF36F8FC9
+:10116E00C4F84402BFF34F8FBFF36F8FA06840F4F3
+:10117E000030A060BFF34F8FBFF36F8FA068C00326
+:10118E0025D40020A067BFF34F8F43F6E077616F41
+:10119E00C1F34E30C1F3C902C908551C430103EA1D
+:1011AE00070202EB81762A46013AC4F8546206F130
+:1011BE004046F9D1203B0138F1D2BFF34F8FA068E2
+:1011CE0040F48030A060BFF34F8FBFF36F8F206865
+:1011DE004FF6FF01084040F2003144F20045C0F2E4
+:1011EE00FA51C5F6020508432060FFF768F8A969B1
+:1011FE0042F22437C0F6000740F22C18C1F3032147
+:10120E00C3F20008795C01F01F01C840A969C8F853
+:10121E0000000F2000F013FC58B9D5F8F40040F090
+:10122E000200C5F8F400D5F8F40000F002000090BA
+:10123E00009805F20C4040F22416C3F20006016835
+:10124E00490701680DD5022262F30201016031687F
+:10125E0050F8082C920404D43268521AB2F57A7FF0
+:10126E00F6D900210091C168022262F38F31C1606C
+:10127E00C16801F4404100910099C1688904FCD510
+:10128E00D5F8000440F48070C5F80004286F20F0F3
+:10129E0018002867286900F03801A86A102907D0BD
+:1012AE00182940F06C8100F00300022840F067819D
+:1012BE002868D5F8000440F48070C5F80004306842
+:1012CE00D5F80014C90504D43168091A6429F7D970
+:1012DE00AAE1286F41F2883140F00100286730689A
+:1012EE002A6F920704D43268121A8A42F8D99BE107
+:1012FE00286900F03800182840F04F81A86A40F2A3
+:10130E00F33108405228286B40F08E8101466FF36E
+:10131E005F21272940F0888100F47E41B1F5007FDE
+:10132E0040F0828100F4FE01B1F5803F40F07C81F7
+:10133E0000F0FE40B0F1807F40F07681686B4FF692
+:10134E00F871084210D0E86A20F00100E8623068B7
+:10135E0031688142FCD0686B4FF6F8718843686340
+:10136E00E86A40F00100E86242F20000C5F2002097
+:10137E00016809070AD10168012262F303010160C5
+:10138E00016801F00F01012940F0C781A969E969DF
+:10139E00E969296AA969A96921F47061A9612968B5
+:1013AE00890140F1BA812969032262F302012961A0
+:1013BE00316841F288322B6903F03803182B04D0C0
+:1013CE0033685B1A9342F6D9A7E1A969090703D0DE
+:1013DE00A96921F00F01A961016811F00E0F0AD061
+:1013EE000168012262F303010160006800F00F0042
+:1013FE00012840F09281A86910F0700F03D0A869FF
+:10140E0020F07000A861E86910F0700F03D0E86951
+:10141E0020F07000E861E86910F4E06F03D0E8692D
+:10142E0020F4E060E861286A10F0700F03D0286A9B
+:10143E0020F070002862FEF742FFA96940F22812E0
+:10144E00C3F20002C1F30321795CAB69127801F09B
+:10145E001F0120FA01F11020002AC8F8001018BF51
+:10146E000F2000F0ECFA002840F05781D5F8E0008C
+:10147E0040F2041740F00400C5F8E000D5F8E00093
+:10148E0044F2080800F00400009000984FF4006148
+:10149E00D5F8E000C3F2000740F08000C5F8E00088
+:1014AE00D5F8E000C5F6000800F080000090009826
+:1014BE00D5F8E00040F01000C5F8E000D5F8E000E7
+:1014CE0000F0100000900098D5F8D80040F0010010
+:1014DE00C5F8D800D5F8D80000F0010000900098AB
+:1014EE0020684EF20B400024CEF2000004704EF243
+:1014FE000010CEF2000001607F21A8F1080047E93C
+:10150E0001047960FF21C7E90214C7E90444BC61F4
+:10151E00797FB9B902A8B0213C77FFF77AFB4FF477
+:10152E008000CDE900044FF480702C906846FEF7E1
+:10153E004CFF002840F0F280286F40F400402867EE
+:10154E0057F8040C02217977C168C90600F1B880FA
+:10155E00CA21416253214162C168490665D44FF0E8
+:10156E00FF31C1603168C26852065ED43268521AC9
+:10157E00B2F57A7FF7D903217977C06887E02868BA
+:10158E0040F4803028603068296889033FF591AEB9
+:10159E003168091A6429F7D946E0286820F080706E
+:1015AE00286030682968890104D53168091A022932
+:1015BE00F8D939E0A86A40F2F33188434FF6F87152
+:1015CE005230A86240F22720C0F201102863E86A68
+:1015DE0020F00100E862686B88436863E86A0221C4
+:1015EE0061F38300E862E86A20F00200E862E86ACC
+:1015FE0040F48030E862E86A40F40030E862E86A5D
+:10160E0040F48020E862E86A40F00100E862286851
+:10161E0040F0807028603068296889013FF5A4AEDB
+:10162E003168091A0229F7D972B6816821F4E001EE
+:10163E0021F04001816097E84E0031437E693143CD
+:10164E0086683143816043EA02410161D8F80400A3
+:10165E0020F08000C8F80400D8F80000800605D4F9
+:10166E0000F01AFAF0B10320787710E0D8F80000F5
+:10167E0020F02000C8F8000000F00EFA60B1032040
+:10168E007877D8F8000040F02000C8F8000057F82E
+:10169E00040CFF21416272B6D8F8000040F0200021
+:1016AE00C8F8000057F8040C3969BA69C36C1143C5
+:1016BE0023F00303C364C26C1143C164FF21416272
+:1016CE00012040F21C047877C3F2000443F200407C
+:1016DE001421C4F2010044F81C0C4FF4800044F8AD
+:1016EE00180C4FF4C02044F8140C082044F8100CC9
+:1016FE00002044E903004FF0005044F8040C20464B
+:10170E00FFF787FA4FF08040A06104F11C002421FE
+:0E171E00FFF77FFAFFF7B1FA72B672B672B635
+:02172C00FEE7D6
+:02172E00704702
+:1017300038B540F20004C3F200042068026943692E
+:10174000816894F881501D0507D512F008051FBF68
+:10175000816941F40061816138BD03EA020505F049
+:101760006402042A04D1616F20468847216F10E08B
+:1017700005F04502012A07D1216F2046884705F070
+:101780002200022804D038BD05F02602022A04D126
+:10179000616F2046BDE8384008472A076BD415F42E
+:1017A000587FF0D06A0609D5D4F8842042F00402AC
+:1017B000C4F88420826942F040028261AA0509D5FA
+:1017C000D4F8842042F00102C4F88420826942F4F3
+:1017D00000728261EA0509D5D4F8842042F008023B
+:1017E000C4F88420826942F480728261AA0609D515
+:1017F000D4F8842042F08002C4F88420826942F048
+:1018000020028261D4F88420002ABCD0026801F44E
+:10181000404122F001020260026940F26B33B1F5EF
+:10182000404F22EA0301016140F0B980816842F231
+:10183000F92521F440418160E06FC0F6000550B108
+:10184000056500F083FC00281EBFD4F8840040F03A
+:101850004000C4F88400A06F002894D0056500F013
+:1018600075FC002808BF38BDD4F8840040F0400063
+:10187000C4F8840038BD816941F008018161816943
+:1018800041F010018161816941F400618161016968
+:1018900021F008010161816811F4404F24D1B4F8AE
+:1018A0006A1009B3E168102905D32268616E126BD2
+:1018B00041F8042B0DE0082904D3028E616E21F853
+:1018C000022B06E0216891F83010626E1170616E93
+:1018D00001316166B4F86A100139A4F86A10B4F8ED
+:1018E0006A100029DED120684169826942F008024D
+:1018F0008261826940F26F3342F0100282610268B5
+:1019000022F00102026002699A430261826822F4B5
+:101910004042826094F88120042A18BF11F020020E
+:1019200009D0D4F8842042F08002C4F8842082696F
+:1019300042F02002826194F88120032A18BF11F03E
+:10194000400209D0D4F8842042F00402C4F8842074
+:10195000826942F0400282618A0509D5D4F8842068
+:1019600042F00102C4F88420826942F4007282616C
+:10197000C90509D5D4F8841041F00801C4F88410D1
+:10198000816941F4807181610020A4F86200A4F8AB
+:101990006A00012084F88100D4F8840038BD012059
+:0619A00084F8810038BD4F
+:1019A6004EF6885042F20003CEF20000C5F2002344
+:1019B600026842F470020260186800F00F00062800
+:1019C60004D81868072262F30300186044F2004046
+:1019D6004EF67F51C5F60200CEF6F621026842F0B9
+:1019E6000102026000220261D0F800C001EA0C0187
+:1019F60001601968090705D519684FF0070C6CF3E3
+:101A06000301196040F200218261C0F20221C26125
+:101A1600026281620021C0F2FF11C16240F28021A0
+:101A2600C0F20111016342638163C26301644264CF
+:101A3600016821F480210160026603F5005043F23B
+:061A4600D20101607047AF
+:101A4C0010B540F22C1144F6D352C3F20001C1F28E
+:101A5C00620201240968A1FB0212A11E01EB921182
+:101A6C000A0E18D14EF21002F023CEF20002516091
+:101A7C0002F613510B700021916007210F281160A1
+:101A8C0009D8A01E0F2100F025FA40F22810C3F24D
+:0A1A9C00000004700024204610BD75
+:101AA60040F200104FF65F71C3F20000C0F203016E
+:101AB6000068C16040F22411C3F200010A68C368DD
+:101AC6009B0606D40B689B1AB3F57A7FF7D90320D9
+:061AD6007047002070477C
+:101ADC0040F22410C3F2000001680131016070472C
+:101AEC002DE9F04782B00020019040F22C1040F21A
+:101AFC008804C3F20000C3F2000448F2B51240F2AD
+:101B0C006F480168C1F64E32A56DC4F20208206818
+:101B1C00A1FB021A40452F68296808DCA8F57471EE
+:101B2C00884211DC4839884225DC473924E045F2EB
+:101B3C002F42C5F60202904214DC08F14802904292
+:101B4C003BDCA2F1470117E001F56271884212DC1F
+:101B5C00A1F28731884218D01831884215D001F58E
+:101B6C0056710FE03C329042D4BF3B3A0132904266
+:101B7C0030D0143228E00131884206D01831884226
+:101B8C0003D01831884240F09881E16D082201F0B1
+:101B9C001F01A8F160098A403A4267D004234845E6
+:101BAC0006DCA8F58066B042D4BF303E303647E044
+:101BBC00404543DCA8F1300642E001329042E4D0CB
+:101BCC0045F20842C5F60202904203D0143290420C
+:101BDC0040F073810268E36D03F01F0304279F40FC
+:101BEC000F4218BF12F004061CD102279F400F426F
+:101BFC0018BF12F0020640F0B780D940090740F137
+:101C0C005C8112F0080100F05881016821F00E018E
+:101C1C000160012000FA03F16960606584F8350009
+:101C2C00E16C00E111046F6000F1B080910600F1ED
+:101C3C00B180016821F004010160ABE008F13006CD
+:101C4C00B042CCBF01362F3EB04203D01836B04262
+:101C5C0018BF082306681E4208D0036823F004034B
+:101C6C000360AA60626D42F00102626501228A4043
+:101C7C003A4221D0484506DCA8F580639842D4BF8F
+:101C8C00303B303306E0404502DCA8F1300301E084
+:101C9C0008F130039842D4BF2F3B0133984203D054
+:101CAC001833984240F0128143691B0604D5AA6090
+:101CBC00626D42F00202626504228A403A4221D0EF
+:101CCC00484506DCA8F580639842D4BF303B3033DE
+:101CDC0006E0404502DCA8F1300301E008F13003D6
+:101CEC009842D4BF2F3B0133984203D0183398420B
+:101CFC0040F0EE8003689B0704D5AA60626D42F049
+:101D0C000402626510228A403A424CD008234845AE
+:101D1C0006DCA8F58066B042D4BF303E303606E013
+:101D2C00404502DCA8F1300601E008F13006B04273
+:101D3C00CCBF01362F3EB04203D01836B04218BF8C
+:101D4C00042306681E422ED0AA6002685203026861
+:101D5C0006D4D20506D4026822F00802026001E023
+:101D6C00100319D4226C18E011046F6000F1A880E4
+:101D7C00910600F1A980016821F00A01016001209F
+:101D8C0084F83500002084F834009DE0D00301D4A1
+:101D9C00A16C89E0216C87E0A26C22B120469047AF
+:101DAC00E06D00F01F01202000FA01F23A425AD0F7
+:101DBC0020681023484506DCA8F58067B842D4BFDC
+:101DCC00303F303706E0404502DCA8F1300701E037
+:101DDC0008F13007B842CCBF01372F3FB84203D0CF
+:101DEC001837B84218BF022307681F423BD0AA60BD
+:101DFC0094F83520042A02681AD122F016020260E7
+:101E0C00426922F080024261226CA36C1A4303D017
+:101E1C00026822F0080202603F208840A86001207E
+:101E2C0084F83500216D002084F83400E9BB44E0CF
+:101E3C00510301680CD4C9050ED4016821F01001BE
+:101E4C000160012084F83500002084F8340003E0A0
+:101E5C00080301D4616C00E0E16B21B140F2880011
+:101E6C00C3F200008847606D38B3606DC0071AD0AC
+:101E7C00042084F835002068016821F0010101601C
+:101E8C00019901310191B1EB9A2F02D80168C90770
+:101E9C00F6D10068C00714BF0320012084F8350078
+:101EAC00002084F83400E16C39B140F28800C3F2B0
+:101EBC00000002B0BDE8F047084702B0BDE8F0876B
+:101ECC00D00301D4616CEFE7E16BEDE70268F3E658
+:041EDC00026817E79A
+:101EE00000B54EF60C5C4FF0FF3ECEF2000CDCF875
+:101EF0000030C3F3022383F00702042A28BF042220
+:101F00000EFA02F29143033B00F00F0228BF994002
+:101F100000F16043043A03F56443624400284FEA49
+:0C1F2000011048BF02F10C03187000BD56
+:101F2C0070B544F20043C5F60203D3F828E00EF076
+:101F3C00030EBEF1030F04BF012070BD40F2241C40
+:101F4C00D3F800E0C3F2000C2EF0806EC3F800E072
+:101F5C00DCF800E01A68120106D5DCF80020A2EBD0
+:101F6C000E02022AF6D95FE09A6A0129D0E900E450
+:101F7C0022F47C32D0E9025642EA0E329A624FF4D5
+:101F8C007E42A4F1010E02EB452204696FF35F2E31
+:101F9C004FF0FE451EFA82F24FF4FE0E0EEB064E8B
+:101FAC000EF4FE0E05EB0464724404F0FE4E724413
+:101FBC009A63DA6AD0F814E022F0C00242EA0E0208
+:101FCC00DA62DA6AD0F818E022F0200242EA0E0255
+:101FDC00DA62DA6A4FF6F87E22F01002DA62DA6B15
+:101FEC00C06922EA0E0242EAC000D863D86A40F007
+:101FFC001000D8624FF4001008BF4FF48010002975
+:10200C00D96A08BF4FF400200843D862186840F022
+:10201C0080601860DCF800001968090106D4DCF84F
+:10202C000010091A0329F7D3032070BD002070BDDE
+:10203C0070B544F20043C5F60203D3F828E00EF065
+:10204C00030EBEF1030F04BF012070BD40F2241C2F
+:10205C00D3F800E0C3F2000C2EF0805EC3F800E071
+:10206C00DCF800E01A68920006D5DCF80020A2EB40
+:10207C000E02022AF6D95FE09A6A0129D0E900E43F
+:10208C0022F07C72D0E9025642EA0E529A624FF468
+:10209C007E42A4F1010E02EB452204696FF35F2E20
+:1020AC004FF0FE451EFA82F24FF4FE0E0EEB064E7A
+:1020BC000EF4FE0E05EB0464724404F0FE4E724402
+:1020CC001A64DA6AD0F814E022F4406242EA0E0292
+:1020DC00DA62DA6AD0F818E022F4007242EA0E02F0
+:1020EC00DA62DA6A4FF6F87E22F48072DA625A6C9F
+:1020FC00C06922EA0E0242EAC0005864D86A40F471
+:10210C008070D8624FF0807008BF4FF40000002937
+:10211C00D96A08BF4FF480000843D862186840F0B1
+:10212C0080501860DCF800001968890006D4DCF8CF
+:10213C000010091A0329F7D3032070BD002070BDCD
+:10214C0090F83510022916D180B540F20F42016883
+:10215C00C4F20202914212DCA2F5687C61451DDCDE
+:10216C00A2F5747C61452FDCA2F2FF3C614548D09E
+:10217C00A2F2E73C43E080214165012163E002F1DA
+:10218C00600C614515DC02F1300C614523DC02F179
+:10219C00010C614535D002F1190C30E0A2F55C7CE4
+:1021AC0061451FDCA2F29F3C61452AD0A2F2873C1C
+:1021BC0025E002F1900C61451BDC02F1610C6145DC
+:1021CC001FD002F1790C1AE0A2F2CF3C614518D075
+:1021DC00A2F2B73C13E002F1310C614511D002F1CF
+:1021EC00490C0CE0A2F26F3C61450AD0A2F2573CBC
+:1021FC0005E002F1A90C614503D002F1910C614597
+:10220C0028D191424FF0040280F8352006DC6F2073
+:10221C00C4F20200814207DD303006E040F26F402C
+:10222C00C4F20200814203DC3038814203DD03E05A
+:10223C003030814209DC2F38086820F0010008603A
+:10224C000021BDE80840084670471930814218BF8C
+:10225C001838F1E70A6822F00E020A6045F257427C
+:10226C00C5F6020291420A6822F001020A6007DCFC
+:10227C0045F22F42C5F60202914207DD013206E01B
+:10228C0045F27F42C5F60202914204DC273A9142A4
+:10229C0007D0143203E01532914202D0143A914225
+:1022AC0019D1D0E91813D0E916EC0A6822F480721F
+:1022BC000A600CF01F01012202FA01F1CEF80410A1
+:1022CC00816E5960C16E31B10A6822F480720A6065
+:1022DC00D0E91C124A60012180F83510026D0021F2
+:0C22EC00002A80F83410ACD09047A9E71D
+:1022F800806B0021A0F86A10A0F86210012180F814
+:042308008110704789
+:10230C00FFF74BFB4EF68850CEF20000016851F4FB
+:08231C0070010160FEF774FC82
+:102324000000000000000000010203040607080981
+:102334005923000800000030290100006B23000825
+:102344002C0100305423000804000000170C00087E
+:042354000090D00322
+:10235800206861680834002200E042540139FCD545
+:022368007047BC
+:10236A0020686168A2680C3401E08B5C8354013AEE
+:04237A00FBD57047D8
+:040000050800230DBF
 :00000001FF
Index: /ctrl/firmware/Main/SES/Output/Release/Exe/charger.htm
===================================================================
--- /ctrl/firmware/Main/SES/Output/Release/Exe/charger.htm	(revision 44)
+++ /ctrl/firmware/Main/SES/Output/Release/Exe/charger.htm	(revision 45)
@@ -51,4 +51,5 @@
   <li><a href="#MODULE DETAIL_Module stm32h723xx_Vectors.o">Module stm32h723xx_Vectors.o</a></li>
   <li><a href="#MODULE DETAIL_Module SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)">Module SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</a></li>
+  <li><a href="#MODULE DETAIL_Module strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)">Module strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</a></li>
   <li><a href="#MODULE DETAIL_All modules">All modules</a></li>
 </ul>
@@ -121,15 +122,22 @@
   <li><a href="#ABSOLUTE LISTING_Section .vectors from stm32h723xx_Vectors.o, size=716, align=1024">Section .vectors from stm32h723xx_Vectors.o, size=716, align=1024</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .text.HAL_RCC_GetSysClockFreq from charger_lto.o, size=268, align=4">Section .text.HAL_RCC_GetSysClockFreq from charger_lto.o, size=268, align=4</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.HAL_RCCEx_PeriphCLKConfig from charger_lto.o, size=2100, align=4">Section .text.HAL_RCCEx_PeriphCLKConfig from charger_lto.o, size=2100, align=4</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .init._start from SEGGER_THUMB_Startup.o, size=20, align=4">Section .init._start from SEGGER_THUMB_Startup.o, size=20, align=4</a></li>
-  <li><a href="#ABSOLUTE LISTING_Section .text.SystemClock_Config() from charger_lto.o, size=794, align=2">Section .text.SystemClock_Config() from charger_lto.o, size=794, align=2</a></li>
-  <li><a href="#ABSOLUTE LISTING_Section .text.SystemInit from charger_lto.o, size=166, align=2">Section .text.SystemInit from charger_lto.o, size=166, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.libc.__aeabi_memclr from strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=104, align=4">Section .text.libc.__aeabi_memclr from strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=104, align=4</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.HAL_SPI_Init from charger_lto.o, size=1158, align=4">Section .text.HAL_SPI_Init from charger_lto.o, size=1158, align=4</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.main from charger_lto.o, size=1566, align=2">Section .text.main from charger_lto.o, size=1566, align=2</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .text.NMI_Handler from charger_lto.o, size=2, align=2">Section .text.NMI_Handler from charger_lto.o, size=2, align=2</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .text.SVC_Handler from charger_lto.o, size=2, align=2">Section .text.SVC_Handler from charger_lto.o, size=2, align=2</a></li>
-  <li><a href="#ABSOLUTE LISTING_Section .text.HAL_Init from charger_lto.o, size=114, align=2">Section .text.HAL_Init from charger_lto.o, size=114, align=2</a></li>
-  <li><a href="#ABSOLUTE LISTING_Section .text.HAL_RTC_Init from charger_lto.o, size=382, align=2">Section .text.HAL_RTC_Init from charger_lto.o, size=382, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.SPI4_IRQHandler from charger_lto.o, size=630, align=2">Section .text.SPI4_IRQHandler from charger_lto.o, size=630, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.SystemInit from charger_lto.o, size=166, align=2">Section .text.SystemInit from charger_lto.o, size=166, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.HAL_InitTick from charger_lto.o, size=90, align=2">Section .text.HAL_InitTick from charger_lto.o, size=90, align=2</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .text.HAL_RTC_WaitForSynchro from charger_lto.o, size=54, align=2">Section .text.HAL_RTC_WaitForSynchro from charger_lto.o, size=54, align=2</a></li>
-  <li><a href="#ABSOLUTE LISTING_Section .text.main from charger_lto.o, size=304, align=2">Section .text.main from charger_lto.o, size=304, align=2</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .text.SysTick_Handler from charger_lto.o, size=16, align=2">Section .text.SysTick_Handler from charger_lto.o, size=16, align=2</a></li>
-  <li><a href="#ABSOLUTE LISTING_Section .text.HAL_InitTick from charger_lto.o, size=128, align=2">Section .text.HAL_InitTick from charger_lto.o, size=128, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.DMA1_Stream0_IRQHandler from charger_lto.o, size=1012, align=2">Section .text.DMA1_Stream0_IRQHandler from charger_lto.o, size=1012, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.HAL_NVIC_SetPriority from charger_lto.o, size=76, align=2">Section .text.HAL_NVIC_SetPriority from charger_lto.o, size=76, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.RCCEx_PLL2_Config from charger_lto.o, size=272, align=2">Section .text.RCCEx_PLL2_Config from charger_lto.o, size=272, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.RCCEx_PLL3_Config from charger_lto.o, size=272, align=2">Section .text.RCCEx_PLL3_Config from charger_lto.o, size=272, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.HAL_DMA_Abort_IT from charger_lto.o, size=428, align=2">Section .text.HAL_DMA_Abort_IT from charger_lto.o, size=428, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .text.SPI_DMAAbortOnError from charger_lto.o, size=20, align=2">Section .text.SPI_DMAAbortOnError from charger_lto.o, size=20, align=2</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .init.Reset_Handler from Cortex_M_Startup.o, size=24, align=2">Section .init.Reset_Handler from Cortex_M_Startup.o, size=24, align=2</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .rodata.D1CorePrescTable from charger_lto.o, size=16, align=1">Section .rodata.D1CorePrescTable from charger_lto.o, size=16, align=1</a></li>
@@ -138,4 +146,6 @@
   <li><a href="#ABSOLUTE LISTING_Section .segger.init.__SEGGER_init_zero from SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=18, align=2">Section .segger.init.__SEGGER_init_zero from SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=18, align=2</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .segger.init.__SEGGER_init_copy from SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=20, align=2">Section .segger.init.__SEGGER_init_copy from SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=20, align=2</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .bss.hspi4 from charger_lto.o, size=136, align=4">Section .bss.hspi4 from charger_lto.o, size=136, align=4</a></li>
+  <li><a href="#ABSOLUTE LISTING_Section .bss.hdma_spi4_tx from charger_lto.o, size=120, align=4">Section .bss.hdma_spi4_tx from charger_lto.o, size=120, align=4</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .bss.hrtc from charger_lto.o, size=36, align=4">Section .bss.hrtc from charger_lto.o, size=36, align=4</a></li>
   <li><a href="#ABSOLUTE LISTING_Section .bss.uwTick from charger_lto.o, size=4, align=4">Section .bss.uwTick from charger_lto.o, size=4, align=4</a></li>
@@ -409,7 +419,15 @@
   </tr>
   <tr>
+    <td align="left"><code>HAL_RCCEx_PeriphCLKConfig</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x080003D8</code></td>
+    <td align="right"><code>2 100</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
     <td align="left"><code>_start</code></td>
     <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x080003D8</code></td>
+    <td align="right"><code>0x08000C0C</code></td>
     <td align="right"><code>20</code></td>
     <td align="right"><code>4</code></td>
@@ -417,8 +435,48 @@
   </tr>
   <tr>
-    <td align="left"><code>SystemClock_Config()</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x080003EC</code></td>
-    <td align="right"><code>794</code></td>
+    <td align="left"><code>__aeabi_memclr</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x08000C20</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_SPI_Init</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x08000C88</code></td>
+    <td align="right"><code>1 158</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>main</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x0800110E</code></td>
+    <td align="right"><code>1 566</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>NMI_Handler</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x0800172C</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>SVC_Handler</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x0800172E</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>SPI4_IRQHandler</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x08001730</code></td>
+    <td align="right"><code>630</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>charger_lto.o</code></td>
@@ -427,5 +485,5 @@
     <td align="left"><code>SystemInit</code></td>
     <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x08000706</code></td>
+    <td align="right"><code>0x080019A6</code></td>
     <td align="right"><code>166</code></td>
     <td align="right"><code>2</code></td>
@@ -433,32 +491,8 @@
   </tr>
   <tr>
-    <td align="left"><code>NMI_Handler</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x080007AC</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>SVC_Handler</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x080007AE</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>HAL_Init</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x080007B0</code></td>
-    <td align="right"><code>114</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>HAL_RTC_Init</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x08000822</code></td>
-    <td align="right"><code>382</code></td>
+    <td align="left"><code>HAL_InitTick</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x08001A4C</code></td>
+    <td align="right"><code>90</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>charger_lto.o</code></td>
@@ -467,5 +501,5 @@
     <td align="left"><code>HAL_RTC_WaitForSynchro</code></td>
     <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x080009A0</code></td>
+    <td align="right"><code>0x08001AA6</code></td>
     <td align="right"><code>54</code></td>
     <td align="right"><code>2</code></td>
@@ -473,15 +507,7 @@
   </tr>
   <tr>
-    <td align="left"><code>main</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x080009D6</code></td>
-    <td align="right"><code>304</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
     <td align="left"><code>SysTick_Handler</code></td>
     <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x08000B06</code></td>
+    <td align="right"><code>0x08001ADC</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>2</code></td>
@@ -489,8 +515,48 @@
   </tr>
   <tr>
-    <td align="left"><code>HAL_InitTick</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x08000B16</code></td>
-    <td align="right"><code>128</code></td>
+    <td align="left"><code>DMA1_Stream0_IRQHandler</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x08001AEC</code></td>
+    <td align="right"><code>1 012</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_NVIC_SetPriority</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x08001EE0</code></td>
+    <td align="right"><code>76</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>RCCEx_PLL2_Config</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x08001F2C</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>RCCEx_PLL3_Config</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x0800203C</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_DMA_Abort_IT</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x0800214C</code></td>
+    <td align="right"><code>428</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>SPI_DMAAbortOnError</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="right"><code>0x080022F8</code></td>
+    <td align="right"><code>20</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>charger_lto.o</code></td>
@@ -499,5 +565,5 @@
     <td align="left"><code>Reset_Handler</code></td>
     <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x08000B96</code></td>
+    <td align="right"><code>0x0800230C</code></td>
     <td align="right"><code>24</code></td>
     <td align="right"><code>2</code></td>
@@ -507,5 +573,5 @@
     <td align="left"><code>D1CorePrescTable</code></td>
     <td align="left"><code>Cnst</code></td>
-    <td align="right"><code>0x08000BAE</code></td>
+    <td align="right"><code>0x08002324</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>1</code></td>
@@ -515,5 +581,5 @@
     <td align="left"><code>[.rodata.block.tdata.copy]</code></td>
     <td align="left"><code>Cnst</code></td>
-    <td align="right"><code>0x08000BAE</code></td>
+    <td align="right"><code>0x08002324</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>1</code></td>
@@ -523,5 +589,5 @@
     <td align="left"><code>__SEGGER_init_table__</code></td>
     <td align="left"><code>Cnst</code></td>
-    <td align="right"><code>0x08000BC0</code></td>
+    <td align="right"><code>0x08002334</code></td>
     <td align="right"><code>32</code></td>
     <td align="right"><code>4</code></td>
@@ -531,5 +597,5 @@
     <td align="left"><code>__SEGGER_init_data__</code></td>
     <td align="left"><code>Cnst</code></td>
-    <td align="right"><code>0x08000BE0</code></td>
+    <td align="right"><code>0x08002354</code></td>
     <td align="right"><code>4</code></td>
     <td align="right"><code>4</code></td>
@@ -539,5 +605,5 @@
     <td align="left"><code>__SEGGER_init_zero</code></td>
     <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x08000BE4</code></td>
+    <td align="right"><code>0x08002358</code></td>
     <td align="right"><code>18</code></td>
     <td align="right"><code>2</code></td>
@@ -547,5 +613,5 @@
     <td align="left"><code>__SEGGER_init_copy</code></td>
     <td align="left"><code>Code</code></td>
-    <td align="right"><code>0x08000BF6</code></td>
+    <td align="right"><code>0x0800236A</code></td>
     <td align="right"><code>20</code></td>
     <td align="right"><code>2</code></td>
@@ -564,7 +630,23 @@
   </tr>
   <tr>
+    <td align="left"><code>hspi4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="right"><code>0x30000000</code></td>
+    <td align="right"><code>136</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>hdma_spi4_tx</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="right"><code>0x30000088</code></td>
+    <td align="right"><code>120</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
     <td align="left"><code>hrtc</code></td>
     <td align="left"><code>Zero</code></td>
-    <td align="right"><code>0x30000000</code></td>
+    <td align="right"><code>0x30000100</code></td>
     <td align="right"><code>36</code></td>
     <td align="right"><code>4</code></td>
@@ -574,5 +656,5 @@
     <td align="left"><code>uwTick</code></td>
     <td align="left"><code>Zero</code></td>
-    <td align="right"><code>0x30000024</code></td>
+    <td align="right"><code>0x30000124</code></td>
     <td align="right"><code>4</code></td>
     <td align="right"><code>4</code></td>
@@ -582,5 +664,5 @@
     <td align="left"><code>uwTickPrio</code></td>
     <td align="left"><code>Zero</code></td>
-    <td align="right"><code>0x30000028</code></td>
+    <td align="right"><code>0x30000128</code></td>
     <td align="right"><code>1</code></td>
     <td align="right"><code>4</code></td>
@@ -590,5 +672,5 @@
     <td align="left"><code>SystemCoreClock</code></td>
     <td align="left"><code>Init</code></td>
-    <td align="right"><code>0x3000002C</code></td>
+    <td align="right"><code>0x3000012C</code></td>
     <td align="right"><code>4</code></td>
     <td align="right"><code>4</code></td>
@@ -598,5 +680,5 @@
     <td align="left"><code>[.bss.block.heap]</code></td>
     <td align="left"><code>None</code></td>
-    <td align="right"><code>0x30000030</code></td>
+    <td align="right"><code>0x30000130</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>8</code></td>
@@ -633,5 +715,5 @@
     <td align="left"><code>[.bss.block.heap]</code></td>
     <td align="left"><code>None</code></td>
-    <td align="right"><code>0x30000030</code></td>
+    <td align="right"><code>0x30000130</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>8</code></td>
@@ -651,8 +733,8 @@
   <tr>
     <td align="left"><code>charger_lto.o</code></td>
-    <td align="right"><code>2 230</code></td>
+    <td align="right"><code>8 132</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>41</code></td>
+    <td align="right"><code>297</code></td>
   </tr>
   <tr>
@@ -679,8 +761,8 @@
   <tr>
     <td align="left"><code>Subtotal (4 objects)</code></td>
-    <td align="right"><code>2 990</code></td>
+    <td align="right"><code>8 892</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>41</code></td>
+    <td align="right"><code>297</code></td>
   </tr>
   <tr>
@@ -692,6 +774,13 @@
   </tr>
   <tr>
-    <td align="left"><code>Subtotal (1 archives)</code></td>
-    <td align="right"><code>38</code></td>
+    <td align="left"><code>strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>Subtotal (2 archives)</code></td>
+    <td align="right"><code>142</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -707,8 +796,8 @@
   <tr>
     <td align="left"><code>Total:</code></td>
-    <td align="right"><code>3 028</code></td>
+    <td align="right"><code>9 034</code></td>
     <td align="right"><code>52</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>8 233</code></td>
+    <td align="right"><code>8 489</code></td>
   </tr>
 </table>
@@ -730,6 +819,13 @@
   </tr>
   <tr>
-    <td align="left"><code>Subtotal (1 members from 1 archives)</code></td>
-    <td align="right"><code>38</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>Subtotal (2 members from 2 archives)</code></td>
+    <td align="right"><code>142</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -738,8 +834,8 @@
   <tr>
     <td align="left"><code>Objects (4 files)</code></td>
-    <td align="right"><code>2 990</code></td>
+    <td align="right"><code>8 892</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>41</code></td>
+    <td align="right"><code>297</code></td>
   </tr>
   <tr>
@@ -752,8 +848,8 @@
   <tr>
     <td align="left"><code>Total:</code></td>
-    <td align="right"><code>3 028</code></td>
+    <td align="right"><code>9 034</code></td>
     <td align="right"><code>52</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>8 233</code></td>
+    <td align="right"><code>8 489</code></td>
   </tr>
 </table>
@@ -790,12 +886,12 @@
   <tr>
     <td align="left"><code>Objects (4 files)</code></td>
-    <td align="right"><code>2 990</code></td>
+    <td align="right"><code>8 892</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>41</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>Archives (1 files)</code></td>
-    <td align="right"><code>38</code></td>
+    <td align="right"><code>297</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>Archives (2 files)</code></td>
+    <td align="right"><code>142</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -804,8 +900,8 @@
   <tr>
     <td align="left"><code>Total:</code></td>
-    <td align="right"><code>3 028</code></td>
+    <td align="right"><code>9 034</code></td>
     <td align="right"><code>52</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>8 233</code></td>
+    <td align="right"><code>8 489</code></td>
   </tr>
 </table>
@@ -821,13 +917,6 @@
   </tr>
   <tr>
-    <td align="left"><code>SystemClock_Config()</code></td>
-    <td align="right"><code>794</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code></code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>HAL_RTC_Init</code></td>
-    <td align="right"><code>382</code></td>
+    <td align="left"><code>HAL_RCCEx_PeriphCLKConfig</code></td>
+    <td align="right"><code>2 100</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -836,5 +925,47 @@
   <tr>
     <td align="left"><code>main</code></td>
-    <td align="right"><code>304</code></td>
+    <td align="right"><code>1 566</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_SPI_Init</code></td>
+    <td align="right"><code>1 158</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>DMA1_Stream0_IRQHandler</code></td>
+    <td align="right"><code>1 012</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>SPI4_IRQHandler</code></td>
+    <td align="right"><code>630</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_DMA_Abort_IT</code></td>
+    <td align="right"><code>428</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>RCCEx_PLL2_Config</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>RCCEx_PLL3_Config</code></td>
+    <td align="right"><code>272</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -857,12 +988,12 @@
   <tr>
     <td align="left"><code>HAL_InitTick</code></td>
-    <td align="right"><code>128</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code></code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>HAL_Init</code></td>
-    <td align="right"><code>114</code></td>
+    <td align="right"><code>90</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_NVIC_SetPriority</code></td>
+    <td align="right"><code>76</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -877,4 +1008,11 @@
   </tr>
   <tr>
+    <td align="left"><code>SPI_DMAAbortOnError</code></td>
+    <td align="right"><code>20</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
     <td align="left"><code>SysTick_Handler</code></td>
     <td align="right"><code>16</code></td>
@@ -912,4 +1050,18 @@
   </tr>
   <tr>
+    <td align="left"><code>hspi4</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>136</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>hdma_spi4_tx</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>120</code></td>
+  </tr>
+  <tr>
     <td align="left"><code>hrtc</code></td>
     <td align="right"><code></code></td>
@@ -934,8 +1086,8 @@
   <tr>
     <td align="left"><code>Total:</code></td>
-    <td align="right"><code>2 230</code></td>
+    <td align="right"><code>8 132</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>41</code></td>
+    <td align="right"><code>297</code></td>
   </tr>
 </table>
@@ -1043,4 +1195,28 @@
   </tr>
 </table>
+<h2 id="MODULE DETAIL_Module strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)">Module strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</h2>
+<table>
+  <tr>
+    <th align="left">Symbol or [section] name</th>
+    <th align="right">Code</th>
+    <th align="right">RO Data</th>
+    <th align="right">RW Data</th>
+    <th align="right">ZI Data</th>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memclr</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>Total:</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+  </tr>
+</table>
 <h2 id="MODULE DETAIL_All modules">All modules</h2>
 <table>
@@ -1054,8 +1230,8 @@
   <tr>
     <td align="left"><code>Grand total:</code></td>
-    <td align="right"><code>3 028</code></td>
+    <td align="right"><code>9 034</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>4</code></td>
-    <td align="right"><code>41</code></td>
+    <td align="right"><code>297</code></td>
   </tr>
 </table>
@@ -1091,5 +1267,14 @@
   </tr>
   <tr>
-    <td align="left"><code>080003d8-080003eb</code></td>
+    <td align="left"><code>080003d8-08000c0b</code></td>
+    <td align="left"><code>HAL_RCCEx_PeriphCLKConfig</code></td>
+    <td align="right"><code>2 100</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>08000c0c-08000c1f</code></td>
     <td align="left"><code>_start</code></td>
     <td align="right"><code>20</code></td>
@@ -1100,14 +1285,59 @@
   </tr>
   <tr>
-    <td align="left"><code>080003ec-08000705</code></td>
-    <td align="left"><code>SystemClock_Config()</code></td>
-    <td align="right"><code>794</code></td>
-    <td align="right"><code>2</code></td>
+    <td align="left"><code>08000c20-08000c87</code></td>
+    <td align="left"><code>__aeabi_memclr</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code>4</code></td>
     <td align="left"><code>Code</code></td>
     <td align="left"><code>RX</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>08000706-080007ab</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>08000c88-0800110d</code></td>
+    <td align="left"><code>HAL_SPI_Init</code></td>
+    <td align="right"><code>1 158</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>0800110e-0800172b</code></td>
+    <td align="left"><code>main</code></td>
+    <td align="right"><code>1 566</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>0800172c-0800172d</code></td>
+    <td align="left"><code>NMI_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>0800172e-0800172f</code></td>
+    <td align="left"><code>SVC_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>08001730-080019a5</code></td>
+    <td align="left"><code>SPI4_IRQHandler</code></td>
+    <td align="right"><code>630</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>080019a6-08001a4b</code></td>
     <td align="left"><code>SystemInit</code></td>
     <td align="right"><code>166</code></td>
@@ -1118,7 +1348,7 @@
   </tr>
   <tr>
-    <td align="left"><code>080007ac-080007ad</code></td>
-    <td align="left"><code>NMI_Handler</code></td>
-    <td align="right"><code>2</code></td>
+    <td align="left"><code>08001a4c-08001aa5</code></td>
+    <td align="left"><code>HAL_InitTick</code></td>
+    <td align="right"><code>90</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>Code</code></td>
@@ -1127,32 +1357,5 @@
   </tr>
   <tr>
-    <td align="left"><code>080007ae-080007af</code></td>
-    <td align="left"><code>SVC_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>RX</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>080007b0-08000821</code></td>
-    <td align="left"><code>HAL_Init</code></td>
-    <td align="right"><code>114</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>RX</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>08000822-0800099f</code></td>
-    <td align="left"><code>HAL_RTC_Init</code></td>
-    <td align="right"><code>382</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>RX</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>080009a0-080009d5</code></td>
+    <td align="left"><code>08001aa6-08001adb</code></td>
     <td align="left"><code>HAL_RTC_WaitForSynchro</code></td>
     <td align="right"><code>54</code></td>
@@ -1163,14 +1366,5 @@
   </tr>
   <tr>
-    <td align="left"><code>080009d6-08000b05</code></td>
-    <td align="left"><code>main</code></td>
-    <td align="right"><code>304</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>RX</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>08000b06-08000b15</code></td>
+    <td align="left"><code>08001adc-08001aeb</code></td>
     <td align="left"><code>SysTick_Handler</code></td>
     <td align="right"><code>16</code></td>
@@ -1181,7 +1375,7 @@
   </tr>
   <tr>
-    <td align="left"><code>08000b16-08000b95</code></td>
-    <td align="left"><code>HAL_InitTick</code></td>
-    <td align="right"><code>128</code></td>
+    <td align="left"><code>08001aec-08001edf</code></td>
+    <td align="left"><code>DMA1_Stream0_IRQHandler</code></td>
+    <td align="right"><code>1 012</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>Code</code></td>
@@ -1190,5 +1384,50 @@
   </tr>
   <tr>
-    <td align="left"><code>08000b96-08000bad</code></td>
+    <td align="left"><code>08001ee0-08001f2b</code></td>
+    <td align="left"><code>HAL_NVIC_SetPriority</code></td>
+    <td align="right"><code>76</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>08001f2c-0800203b</code></td>
+    <td align="left"><code>RCCEx_PLL2_Config</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>0800203c-0800214b</code></td>
+    <td align="left"><code>RCCEx_PLL3_Config</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>0800214c-080022f7</code></td>
+    <td align="left"><code>HAL_DMA_Abort_IT</code></td>
+    <td align="right"><code>428</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>080022f8-0800230b</code></td>
+    <td align="left"><code>SPI_DMAAbortOnError</code></td>
+    <td align="right"><code>20</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>RX</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>0800230c-08002323</code></td>
     <td align="left"><code>Reset_Handler</code></td>
     <td align="right"><code>24</code></td>
@@ -1199,5 +1438,5 @@
   </tr>
   <tr>
-    <td align="left"><code>08000bae-08000bbd</code></td>
+    <td align="left"><code>08002324-08002333</code></td>
     <td align="left"><code>D1CorePrescTable</code></td>
     <td align="right"><code>16</code></td>
@@ -1208,14 +1447,5 @@
   </tr>
   <tr>
-    <td align="left"><code>08000bbe-08000bbf</code></td>
-    <td align="left" style="color: red;"><code>( UNUSED .=.+2 )</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>-</code></td>
-    <td align="left"><code>----</code></td>
-    <td align="left"><code>-</code></td>
-    <td align="left"><code>-</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>08000bc0-08000bdf</code></td>
+    <td align="left"><code>08002334-08002353</code></td>
     <td align="left"><code>__SEGGER_init_table__</code></td>
     <td align="right"><code>32</code></td>
@@ -1226,5 +1456,5 @@
   </tr>
   <tr>
-    <td align="left"><code>08000be0-08000be3</code></td>
+    <td align="left"><code>08002354-08002357</code></td>
     <td align="left"><code>__SEGGER_init_data__</code></td>
     <td align="right"><code>4</code></td>
@@ -1235,5 +1465,5 @@
   </tr>
   <tr>
-    <td align="left"><code>08000be4-08000bf5</code></td>
+    <td align="left"><code>08002358-08002369</code></td>
     <td align="left"><code>__SEGGER_init_zero</code></td>
     <td align="right"><code>18</code></td>
@@ -1244,5 +1474,5 @@
   </tr>
   <tr>
-    <td align="left"><code>08000bf6-08000c09</code></td>
+    <td align="left"><code>0800236a-0800237d</code></td>
     <td align="left"><code>__SEGGER_init_copy</code></td>
     <td align="right"><code>20</code></td>
@@ -1253,7 +1483,7 @@
   </tr>
   <tr>
-    <td align="left"><code>08000c0a-2fffffff</code></td>
-    <td align="left" style="color: red;"><code>( UNUSED .=.+671085558 )</code></td>
-    <td align="right"><code>671 085 558</code></td>
+    <td align="left"><code>0800237e-2fffffff</code></td>
+    <td align="left" style="color: red;"><code>( UNUSED .=.+671079554 )</code></td>
+    <td align="right"><code>671 079 554</code></td>
     <td align="right"><code>-</code></td>
     <td align="left"><code>----</code></td>
@@ -1262,5 +1492,23 @@
   </tr>
   <tr>
-    <td align="left"><code>30000000-30000023</code></td>
+    <td align="left"><code>30000000-30000087</code></td>
+    <td align="left"><code>hspi4</code></td>
+    <td align="right"><code>136</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="left"><code>ZI</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>30000088-300000ff</code></td>
+    <td align="left"><code>hdma_spi4_tx</code></td>
+    <td align="right"><code>120</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="left"><code>ZI</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>30000100-30000123</code></td>
     <td align="left"><code>hrtc</code></td>
     <td align="right"><code>36</code></td>
@@ -1271,5 +1519,5 @@
   </tr>
   <tr>
-    <td align="left"><code>30000024-30000027</code></td>
+    <td align="left"><code>30000124-30000127</code></td>
     <td align="left"><code>uwTick</code></td>
     <td align="right"><code>4</code></td>
@@ -1280,5 +1528,5 @@
   </tr>
   <tr>
-    <td align="left"><code>30000028-30000028</code></td>
+    <td align="left"><code>30000128-30000128</code></td>
     <td align="left"><code>uwTickPrio</code></td>
     <td align="right"><code>1</code></td>
@@ -1289,5 +1537,5 @@
   </tr>
   <tr>
-    <td align="left"><code>30000029-3000002b</code></td>
+    <td align="left"><code>30000129-3000012b</code></td>
     <td align="left" style="color: red;"><code>( ALIGN .=.+3 )</code></td>
     <td align="right"><code>3</code></td>
@@ -1298,5 +1546,5 @@
   </tr>
   <tr>
-    <td align="left"><code>3000002c-3000002f</code></td>
+    <td align="left"><code>3000012c-3000012f</code></td>
     <td align="left"><code>SystemCoreClock</code></td>
     <td align="right"><code>4</code></td>
@@ -1307,7 +1555,7 @@
   </tr>
   <tr>
-    <td align="left"><code>30000030-30005fff</code></td>
-    <td align="left" style="color: red;"><code>( UNUSED .=.+24528 )</code></td>
-    <td align="right"><code>24 528</code></td>
+    <td align="left"><code>30000130-30005fff</code></td>
+    <td align="left" style="color: red;"><code>( UNUSED .=.+24272 )</code></td>
+    <td align="right"><code>24 272</code></td>
     <td align="right"><code>-</code></td>
     <td align="left"><code>----</code></td>
@@ -1334,15 +1582,10 @@
   </tr>
   <tr>
-    <td align="left"><code>08000bbe-08000bbf</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Unused memory between sections &apos;.rodata.D1CorePrescTable&apos; and &apos;.segger.init.table&apos;</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>08000c0a-2fffffff</code></td>
-    <td align="right"><code>671 085 558</code></td>
-    <td align="left"><code>Unused memory between sections &apos;.segger.init.__SEGGER_init_copy&apos; and &apos;.bss.hrtc&apos;</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>30000029-3000002b</code></td>
+    <td align="left"><code>0800237e-2fffffff</code></td>
+    <td align="right"><code>671 079 554</code></td>
+    <td align="left"><code>Unused memory between sections &apos;.segger.init.__SEGGER_init_copy&apos; and &apos;.bss.hspi4&apos;</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>30000129-3000012b</code></td>
     <td align="right"><code>3</code></td>
     <td align="left"><code>Filler between sections &apos;.bss.uwTickPrio&apos; and &apos;.data.SystemCoreClock&apos; as align=4</code></td>
@@ -1354,6 +1597,6 @@
   </tr>
   <tr>
-    <td align="left"><code>30000030-30005fff</code></td>
-    <td align="right"><code>24 528</code></td>
+    <td align="left"><code>30000130-30005fff</code></td>
+    <td align="right"><code>24 272</code></td>
     <td align="left"><code>Unused memory between sections &apos;.data.SystemCoreClock&apos; and &apos;.bss.block.stack&apos;</code></td>
   </tr>
@@ -1368,22 +1611,32 @@
   </tr>
   <tr>
-    <td align="left"><code>30000000-30000023</code></td>
+    <td align="left"><code>30000000-30000087</code></td>
+    <td align="right"><code>136</code></td>
+    <td align="left"><code>hspi4</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>30000088-300000ff</code></td>
+    <td align="right"><code>120</code></td>
+    <td align="left"><code>hdma_spi4_tx</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>30000100-30000123</code></td>
     <td align="right"><code>36</code></td>
     <td align="left"><code>hrtc</code></td>
   </tr>
   <tr>
-    <td align="left"><code>30000024-30000027</code></td>
+    <td align="left"><code>30000124-30000127</code></td>
     <td align="right"><code>4</code></td>
     <td align="left"><code>uwTick</code></td>
   </tr>
   <tr>
-    <td align="left"><code>30000028-30000028</code></td>
+    <td align="left"><code>30000128-30000128</code></td>
     <td align="right"><code>1</code></td>
     <td align="left"><code>uwTickPrio</code></td>
   </tr>
   <tr>
-    <td align="left"><code>30000000-30000028</code></td>
-    <td align="right"><code>41</code></td>
-    <td align="left"><code>Total (3 sections)</code></td>
+    <td align="left"><code>30000000-30000128</code></td>
+    <td align="right"><code>297</code></td>
+    <td align="left"><code>Total (5 sections)</code></td>
   </tr>
 <h2 id="INITIALIZATION TABLE_Initialize by copy with packing=none">Initialize by copy with packing=none</h2>
@@ -1395,10 +1648,10 @@
   </tr>
   <tr>
-    <td align="left"><code>3000002c-3000002f</code></td>
+    <td align="left"><code>3000012c-3000012f</code></td>
     <td align="right"><code>4</code></td>
     <td align="left"><code>SystemCoreClock</code></td>
   </tr>
   <tr>
-    <td align="left"><code>3000002c-3000002f</code></td>
+    <td align="left"><code>3000012c-3000012f</code></td>
     <td align="right"><code>4</code></td>
     <td align="left"><code>Total (1 sections)</code></td>
@@ -1421,9 +1674,9 @@
   <tr>
     <td align="left">Destination image</td>
-    <td align="right"><code>45 bytes</code></td>
+    <td align="right"><code>301 bytes</code></td>
   </tr>
   <tr>
     <td align="left">Saving</td>
-    <td align="right"><code>9 bytes</code></td>
+    <td align="right"><code>265 bytes</code></td>
   </tr>
 </table>
@@ -1522,5 +1775,5 @@
   <tr>
     <td align="left"><code>ADC3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1531,5 +1784,5 @@
   <tr>
     <td align="left"><code>ADC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1540,5 +1793,5 @@
   <tr>
     <td align="left"><code>BDMA_Channel0_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1549,5 +1802,5 @@
   <tr>
     <td align="left"><code>BDMA_Channel1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1558,5 +1811,5 @@
   <tr>
     <td align="left"><code>BDMA_Channel2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1567,5 +1820,5 @@
   <tr>
     <td align="left"><code>BDMA_Channel3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1576,5 +1829,5 @@
   <tr>
     <td align="left"><code>BDMA_Channel4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1585,5 +1838,5 @@
   <tr>
     <td align="left"><code>BDMA_Channel5_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1594,5 +1847,5 @@
   <tr>
     <td align="left"><code>BDMA_Channel6_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1603,5 +1856,5 @@
   <tr>
     <td align="left"><code>BDMA_Channel7_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1612,5 +1865,5 @@
   <tr>
     <td align="left"><code>BusFault_Handler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code>2</code></td>
     <td align="right"><code>2</code></td>
@@ -1621,5 +1874,5 @@
   <tr>
     <td align="left"><code>CEC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1630,5 +1883,5 @@
   <tr>
     <td align="left"><code>COMP1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1639,5 +1892,5 @@
   <tr>
     <td align="left"><code>CORDIC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1648,5 +1901,5 @@
   <tr>
     <td align="left"><code>CRS_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1657,5 +1910,5 @@
   <tr>
     <td align="left"><code>DCMI_PSSI_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1666,5 +1919,5 @@
   <tr>
     <td align="left"><code>DFSDM1_FLT0_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1675,5 +1928,5 @@
   <tr>
     <td align="left"><code>DFSDM1_FLT1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1684,5 +1937,5 @@
   <tr>
     <td align="left"><code>DFSDM1_FLT2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1693,5 +1946,5 @@
   <tr>
     <td align="left"><code>DFSDM1_FLT3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1702,14 +1955,14 @@
   <tr>
     <td align="left"><code>DMA1_Stream0_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+    <td align="right"><code>0x08001AED</code></td>
+    <td align="right"><code>1 012</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
   </tr>
   <tr>
     <td align="left"><code>DMA1_Stream1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1720,5 +1973,5 @@
   <tr>
     <td align="left"><code>DMA1_Stream2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1729,5 +1982,5 @@
   <tr>
     <td align="left"><code>DMA1_Stream3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1738,5 +1991,5 @@
   <tr>
     <td align="left"><code>DMA1_Stream4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1747,5 +2000,5 @@
   <tr>
     <td align="left"><code>DMA1_Stream5_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1756,5 +2009,5 @@
   <tr>
     <td align="left"><code>DMA1_Stream6_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1765,5 +2018,5 @@
   <tr>
     <td align="left"><code>DMA1_Stream7_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1774,5 +2027,5 @@
   <tr>
     <td align="left"><code>DMA2D_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1783,5 +2036,5 @@
   <tr>
     <td align="left"><code>DMA2_Stream0_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1792,5 +2045,5 @@
   <tr>
     <td align="left"><code>DMA2_Stream1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1801,5 +2054,5 @@
   <tr>
     <td align="left"><code>DMA2_Stream2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1810,5 +2063,5 @@
   <tr>
     <td align="left"><code>DMA2_Stream3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1819,5 +2072,5 @@
   <tr>
     <td align="left"><code>DMA2_Stream4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1828,5 +2081,5 @@
   <tr>
     <td align="left"><code>DMA2_Stream5_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1837,5 +2090,5 @@
   <tr>
     <td align="left"><code>DMA2_Stream6_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1846,5 +2099,5 @@
   <tr>
     <td align="left"><code>DMA2_Stream7_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1855,5 +2108,5 @@
   <tr>
     <td align="left"><code>DMAMUX1_OVR_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1864,5 +2117,5 @@
   <tr>
     <td align="left"><code>DMAMUX2_OVR_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1873,5 +2126,5 @@
   <tr>
     <td align="left"><code>DTS_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1882,5 +2135,5 @@
   <tr>
     <td align="left"><code>DebugMon_Handler</code></td>
-    <td align="right"><code>0x080007AF</code></td>
+    <td align="right"><code>0x0800172F</code></td>
     <td align="right"><code>2</code></td>
     <td align="right"><code>2</code></td>
@@ -1891,5 +2144,5 @@
   <tr>
     <td align="left"><code>ECC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1900,5 +2153,5 @@
   <tr>
     <td align="left"><code>ETH_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1909,5 +2162,5 @@
   <tr>
     <td align="left"><code>ETH_WKUP_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1918,5 +2171,5 @@
   <tr>
     <td align="left"><code>EXTI0_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1927,5 +2180,5 @@
   <tr>
     <td align="left"><code>EXTI15_10_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1936,5 +2189,5 @@
   <tr>
     <td align="left"><code>EXTI1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1945,5 +2198,5 @@
   <tr>
     <td align="left"><code>EXTI2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1954,5 +2207,5 @@
   <tr>
     <td align="left"><code>EXTI3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1963,5 +2216,5 @@
   <tr>
     <td align="left"><code>EXTI4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1972,5 +2225,5 @@
   <tr>
     <td align="left"><code>EXTI9_5_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1981,5 +2234,5 @@
   <tr>
     <td align="left"><code>FDCAN1_IT0_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1990,5 +2243,5 @@
   <tr>
     <td align="left"><code>FDCAN1_IT1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -1999,5 +2252,5 @@
   <tr>
     <td align="left"><code>FDCAN2_IT0_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2008,5 +2261,5 @@
   <tr>
     <td align="left"><code>FDCAN2_IT1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2017,5 +2270,5 @@
   <tr>
     <td align="left"><code>FDCAN3_IT0_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2026,5 +2279,5 @@
   <tr>
     <td align="left"><code>FDCAN3_IT1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2035,5 +2288,5 @@
   <tr>
     <td align="left"><code>FDCAN_CAL_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2044,5 +2297,5 @@
   <tr>
     <td align="left"><code>FLASH_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2053,5 +2306,5 @@
   <tr>
     <td align="left"><code>FMAC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2062,5 +2315,5 @@
   <tr>
     <td align="left"><code>FMC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2071,15 +2324,15 @@
   <tr>
     <td align="left"><code>FPU_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="left"><code>HAL_Init</code></td>
-    <td align="right"><code>0x080007B1</code></td>
-    <td align="right"><code>114</code></td>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_DMA_Abort_IT</code></td>
+    <td align="right"><code>0x0800214D</code></td>
+    <td align="right"><code>428</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>Code</code></td>
@@ -2089,7 +2342,25 @@
   <tr>
     <td align="left"><code>HAL_InitTick</code></td>
-    <td align="right"><code>0x08000B17</code></td>
-    <td align="right"><code>128</code></td>
-    <td align="right"><code>2</code></td>
+    <td align="right"><code>0x08001A4D</code></td>
+    <td align="right"><code>90</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_NVIC_SetPriority</code></td>
+    <td align="right"><code>0x08001EE1</code></td>
+    <td align="right"><code>76</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_RCCEx_PeriphCLKConfig</code></td>
+    <td align="right"><code>0x080003D9</code></td>
+    <td align="right"><code>2 100</code></td>
+    <td align="right"><code>4</code></td>
     <td align="left"><code>Code</code></td>
     <td align="left"><code>Lc</code></td>
@@ -2106,7 +2377,7 @@
   </tr>
   <tr>
-    <td align="left"><code>HAL_RTC_Init</code></td>
-    <td align="right"><code>0x08000823</code></td>
-    <td align="right"><code>382</code></td>
+    <td align="left"><code>HAL_RTC_WaitForSynchro</code></td>
+    <td align="right"><code>0x08001AA7</code></td>
+    <td align="right"><code>54</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>Code</code></td>
@@ -2115,8 +2386,8 @@
   </tr>
   <tr>
-    <td align="left"><code>HAL_RTC_WaitForSynchro</code></td>
-    <td align="right"><code>0x080009A1</code></td>
-    <td align="right"><code>54</code></td>
-    <td align="right"><code>2</code></td>
+    <td align="left"><code>HAL_SPI_Init</code></td>
+    <td align="right"><code>0x08000C89</code></td>
+    <td align="right"><code>1 158</code></td>
+    <td align="right"><code>4</code></td>
     <td align="left"><code>Code</code></td>
     <td align="left"><code>Lc</code></td>
@@ -2125,5 +2396,5 @@
   <tr>
     <td align="left"><code>HSEM1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2134,5 +2405,5 @@
   <tr>
     <td align="left"><code>HardFault_Handler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code>2</code></td>
     <td align="right"><code>2</code></td>
@@ -2143,5 +2414,5 @@
   <tr>
     <td align="left"><code>I2C1_ER_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2152,5 +2423,5 @@
   <tr>
     <td align="left"><code>I2C1_EV_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2161,5 +2432,5 @@
   <tr>
     <td align="left"><code>I2C2_ER_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2170,5 +2441,5 @@
   <tr>
     <td align="left"><code>I2C2_EV_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2179,5 +2450,5 @@
   <tr>
     <td align="left"><code>I2C3_ER_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2188,5 +2459,5 @@
   <tr>
     <td align="left"><code>I2C3_EV_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2197,5 +2468,5 @@
   <tr>
     <td align="left"><code>I2C4_ER_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2206,5 +2477,5 @@
   <tr>
     <td align="left"><code>I2C4_EV_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2215,5 +2486,5 @@
   <tr>
     <td align="left"><code>I2C5_ER_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2224,5 +2495,5 @@
   <tr>
     <td align="left"><code>I2C5_EV_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2233,5 +2504,5 @@
   <tr>
     <td align="left"><code>LPTIM1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2242,5 +2513,5 @@
   <tr>
     <td align="left"><code>LPTIM2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2251,5 +2522,5 @@
   <tr>
     <td align="left"><code>LPTIM3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2260,5 +2531,5 @@
   <tr>
     <td align="left"><code>LPTIM4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2269,5 +2540,5 @@
   <tr>
     <td align="left"><code>LPTIM5_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2278,5 +2549,5 @@
   <tr>
     <td align="left"><code>LPUART1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2287,5 +2558,5 @@
   <tr>
     <td align="left"><code>LTDC_ER_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2296,5 +2567,5 @@
   <tr>
     <td align="left"><code>LTDC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2305,5 +2576,5 @@
   <tr>
     <td align="left"><code>MDIOS_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2314,5 +2585,5 @@
   <tr>
     <td align="left"><code>MDIOS_WKUP_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2323,5 +2594,5 @@
   <tr>
     <td align="left"><code>MDMA_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2332,5 +2603,5 @@
   <tr>
     <td align="left"><code>MemManage_Handler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code>2</code></td>
     <td align="right"><code>2</code></td>
@@ -2341,5 +2612,5 @@
   <tr>
     <td align="left"><code>NMI_Handler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code>2</code></td>
     <td align="right"><code>2</code></td>
@@ -2350,5 +2621,5 @@
   <tr>
     <td align="left"><code>OCTOSPI1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2359,5 +2630,5 @@
   <tr>
     <td align="left"><code>OCTOSPI2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2368,5 +2639,5 @@
   <tr>
     <td align="left"><code>OTG_HS_EP1_IN_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2377,5 +2648,5 @@
   <tr>
     <td align="left"><code>OTG_HS_EP1_OUT_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2386,5 +2657,5 @@
   <tr>
     <td align="left"><code>OTG_HS_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2395,5 +2666,5 @@
   <tr>
     <td align="left"><code>OTG_HS_WKUP_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2404,5 +2675,5 @@
   <tr>
     <td align="left"><code>PVD_AVD_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2413,14 +2684,32 @@
   <tr>
     <td align="left"><code>PendSV_Handler</code></td>
-    <td align="right"><code>0x080007AF</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
+    <td align="right"><code>0x0800172F</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>RCCEx_PLL2_Config</code></td>
+    <td align="right"><code>0x08001F2D</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>RCCEx_PLL3_Config</code></td>
+    <td align="right"><code>0x0800203D</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
     <td align="left"><code>charger_lto.o</code></td>
   </tr>
   <tr>
     <td align="left"><code>RCC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2431,5 +2720,5 @@
   <tr>
     <td align="left"><code>RNG_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2440,5 +2729,5 @@
   <tr>
     <td align="left"><code>RTC_Alarm_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2449,5 +2738,5 @@
   <tr>
     <td align="left"><code>RTC_WKUP_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2458,5 +2747,5 @@
   <tr>
     <td align="left"><code>Reset_Handler</code></td>
-    <td align="right"><code>0x08000B97</code></td>
+    <td align="right"><code>0x0800230D</code></td>
     <td align="right"><code>24</code></td>
     <td align="right"><code>2</code></td>
@@ -2467,5 +2756,5 @@
   <tr>
     <td align="left"><code>SAI1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2476,5 +2765,5 @@
   <tr>
     <td align="left"><code>SAI4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2485,5 +2774,5 @@
   <tr>
     <td align="left"><code>SDMMC1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2494,5 +2783,5 @@
   <tr>
     <td align="left"><code>SDMMC2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2503,5 +2792,5 @@
   <tr>
     <td align="left"><code>SPDIF_RX_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2512,5 +2801,5 @@
   <tr>
     <td align="left"><code>SPI1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2521,5 +2810,5 @@
   <tr>
     <td align="left"><code>SPI2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2530,5 +2819,5 @@
   <tr>
     <td align="left"><code>SPI3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2539,14 +2828,14 @@
   <tr>
     <td align="left"><code>SPI4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+    <td align="right"><code>0x08001731</code></td>
+    <td align="right"><code>630</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
   </tr>
   <tr>
     <td align="left"><code>SPI5_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2557,14 +2846,23 @@
   <tr>
     <td align="left"><code>SPI6_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>SPI_DMAAbortOnError</code></td>
+    <td align="right"><code>0x080022F9</code></td>
+    <td align="right"><code>20</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
   </tr>
   <tr>
     <td align="left"><code>SVC_Handler</code></td>
-    <td align="right"><code>0x080007AF</code></td>
+    <td align="right"><code>0x0800172F</code></td>
     <td align="right"><code>2</code></td>
     <td align="right"><code>2</code></td>
@@ -2575,5 +2873,5 @@
   <tr>
     <td align="left"><code>SWPMI1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2584,5 +2882,5 @@
   <tr>
     <td align="left"><code>SysTick_Handler</code></td>
-    <td align="right"><code>0x08000B07</code></td>
+    <td align="right"><code>0x08001ADD</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code>2</code></td>
@@ -2592,15 +2890,6 @@
   </tr>
   <tr>
-    <td align="left"><code>SystemClock_Config()</code></td>
-    <td align="right"><code>0x080003ED</code></td>
-    <td align="right"><code>794</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Lc</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
     <td align="left"><code>SystemInit</code></td>
-    <td align="right"><code>0x08000707</code></td>
+    <td align="right"><code>0x080019A7</code></td>
     <td align="right"><code>166</code></td>
     <td align="right"><code>2</code></td>
@@ -2611,5 +2900,5 @@
   <tr>
     <td align="left"><code>TAMP_STAMP_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2620,5 +2909,5 @@
   <tr>
     <td align="left"><code>TIM15_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2629,5 +2918,5 @@
   <tr>
     <td align="left"><code>TIM16_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2638,5 +2927,5 @@
   <tr>
     <td align="left"><code>TIM17_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2647,5 +2936,5 @@
   <tr>
     <td align="left"><code>TIM1_BRK_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2656,5 +2945,5 @@
   <tr>
     <td align="left"><code>TIM1_CC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2665,5 +2954,5 @@
   <tr>
     <td align="left"><code>TIM1_TRG_COM_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2674,5 +2963,5 @@
   <tr>
     <td align="left"><code>TIM1_UP_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2683,5 +2972,5 @@
   <tr>
     <td align="left"><code>TIM23_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2692,5 +2981,5 @@
   <tr>
     <td align="left"><code>TIM24_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2701,5 +2990,5 @@
   <tr>
     <td align="left"><code>TIM2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2710,5 +2999,5 @@
   <tr>
     <td align="left"><code>TIM3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2719,5 +3008,5 @@
   <tr>
     <td align="left"><code>TIM4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2728,5 +3017,5 @@
   <tr>
     <td align="left"><code>TIM5_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2737,5 +3026,5 @@
   <tr>
     <td align="left"><code>TIM6_DAC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2746,5 +3035,5 @@
   <tr>
     <td align="left"><code>TIM7_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2755,5 +3044,5 @@
   <tr>
     <td align="left"><code>TIM8_BRK_TIM12_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2764,5 +3053,5 @@
   <tr>
     <td align="left"><code>TIM8_CC_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2773,5 +3062,5 @@
   <tr>
     <td align="left"><code>TIM8_TRG_COM_TIM14_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2782,5 +3071,5 @@
   <tr>
     <td align="left"><code>TIM8_UP_TIM13_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2791,5 +3080,5 @@
   <tr>
     <td align="left"><code>UART4_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2800,5 +3089,5 @@
   <tr>
     <td align="left"><code>UART5_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2809,5 +3098,5 @@
   <tr>
     <td align="left"><code>UART7_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2818,5 +3107,5 @@
   <tr>
     <td align="left"><code>UART8_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2827,5 +3116,5 @@
   <tr>
     <td align="left"><code>UART9_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2836,5 +3125,5 @@
   <tr>
     <td align="left"><code>USART10_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2845,5 +3134,5 @@
   <tr>
     <td align="left"><code>USART1_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2854,5 +3143,5 @@
   <tr>
     <td align="left"><code>USART2_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2863,5 +3152,5 @@
   <tr>
     <td align="left"><code>USART3_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2872,5 +3161,5 @@
   <tr>
     <td align="left"><code>USART6_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2881,5 +3170,5 @@
   <tr>
     <td align="left"><code>UsageFault_Handler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code>2</code></td>
     <td align="right"><code>2</code></td>
@@ -2890,5 +3179,5 @@
   <tr>
     <td align="left"><code>WAKEUP_PIN_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2899,5 +3188,5 @@
   <tr>
     <td align="left"><code>WWDG_IRQHandler</code></td>
-    <td align="right"><code>0x080007AD</code></td>
+    <td align="right"><code>0x0800172D</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>2</code></td>
@@ -2908,5 +3197,5 @@
   <tr>
     <td align="left"><code>__SEGGER_init_copy</code></td>
-    <td align="right"><code>0x08000BF7</code></td>
+    <td align="right"><code>0x0800236B</code></td>
     <td align="right"><code>20</code></td>
     <td align="right"><code>2</code></td>
@@ -2917,5 +3206,5 @@
   <tr>
     <td align="left"><code>__SEGGER_init_done</code></td>
-    <td align="right"><code>0x080003E3</code></td>
+    <td align="right"><code>0x08000C17</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>4</code></td>
@@ -2926,5 +3215,5 @@
   <tr>
     <td align="left"><code>__SEGGER_init_zero</code></td>
-    <td align="right"><code>0x08000BE5</code></td>
+    <td align="right"><code>0x08002359</code></td>
     <td align="right"><code>18</code></td>
     <td align="right"><code>2</code></td>
@@ -2934,6 +3223,60 @@
   </tr>
   <tr>
+    <td align="left"><code>__aeabi_memclr</code></td>
+    <td align="right"><code>0x08000C21</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memclr4</code></td>
+    <td align="right"><code>0x08000C21</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memclr8</code></td>
+    <td align="right"><code>0x08000C21</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memset</code></td>
+    <td align="right"><code>0x08000C23</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memset4</code></td>
+    <td align="right"><code>0x08000C23</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memset8</code></td>
+    <td align="right"><code>0x08000C23</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
     <td align="left"><code>__startup_complete</code></td>
-    <td align="right"><code>0x080003E3</code></td>
+    <td align="right"><code>0x08000C17</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code>4</code></td>
@@ -2944,5 +3287,5 @@
   <tr>
     <td align="left"><code>_start</code></td>
-    <td align="right"><code>0x080003D9</code></td>
+    <td align="right"><code>0x08000C0D</code></td>
     <td align="right"><code>14</code></td>
     <td align="right"><code>4</code></td>
@@ -2953,5 +3296,5 @@
   <tr>
     <td align="left"><code>exit</code></td>
-    <td align="right"><code>0x080003E7</code></td>
+    <td align="right"><code>0x08000C1B</code></td>
     <td align="right"><code>2</code></td>
     <td align="right"><code>4</code></td>
@@ -2962,14 +3305,23 @@
   <tr>
     <td align="left"><code>main</code></td>
-    <td align="right"><code>0x080009D7</code></td>
-    <td align="right"><code>304</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
+    <td align="right"><code>0x0800110F</code></td>
+    <td align="right"><code>1 566</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>memset</code></td>
+    <td align="right"><code>0x08000C29</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
   </tr>
   <tr>
     <td align="left"><code>reset_handler</code></td>
-    <td align="right"><code>0x08000B97</code></td>
+    <td align="right"><code>0x0800230D</code></td>
     <td align="right"><code>24</code></td>
     <td align="right"><code>2</code></td>
@@ -3001,4 +3353,13 @@
   <tr>
     <td align="right"><code>0x080003D9</code></td>
+    <td align="left"><code>HAL_RCCEx_PeriphCLKConfig</code></td>
+    <td align="right"><code>2 100</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08000C0D</code></td>
     <td align="left"><code>_start</code></td>
     <td align="right"><code>14</code></td>
@@ -3009,5 +3370,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x080003E3</code></td>
+    <td align="right"><code>0x08000C17</code></td>
     <td align="left"><code>__startup_complete</code></td>
     <td align="right"><code></code></td>
@@ -3018,5 +3379,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x080003E3</code></td>
+    <td align="right"><code>0x08000C17</code></td>
     <td align="left"><code>__SEGGER_init_done</code></td>
     <td align="right"><code></code></td>
@@ -3027,5 +3388,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x080003E7</code></td>
+    <td align="right"><code>0x08000C1B</code></td>
     <td align="left"><code>exit</code></td>
     <td align="right"><code>2</code></td>
@@ -3036,8 +3397,71 @@
   </tr>
   <tr>
-    <td align="right"><code>0x080003ED</code></td>
-    <td align="left"><code>SystemClock_Config()</code></td>
-    <td align="right"><code>794</code></td>
-    <td align="right"><code>2</code></td>
+    <td align="right"><code>0x08000C21</code></td>
+    <td align="left"><code>__aeabi_memclr8</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08000C21</code></td>
+    <td align="left"><code>__aeabi_memclr4</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08000C21</code></td>
+    <td align="left"><code>__aeabi_memclr</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08000C23</code></td>
+    <td align="left"><code>__aeabi_memset8</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08000C23</code></td>
+    <td align="left"><code>__aeabi_memset4</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08000C23</code></td>
+    <td align="left"><code>__aeabi_memset</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08000C29</code></td>
+    <td align="left"><code>memset</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08000C89</code></td>
+    <td align="left"><code>HAL_SPI_Init</code></td>
+    <td align="right"><code>1 158</code></td>
+    <td align="right"><code>4</code></td>
     <td align="left"><code>Code</code></td>
     <td align="left"><code>Lc</code></td>
@@ -3045,5 +3469,1310 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000707</code></td>
+    <td align="right"><code>0x0800110F</code></td>
+    <td align="left"><code>main</code></td>
+    <td align="right"><code>1 566</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>WWDG_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>WAKEUP_PIN_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>UsageFault_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>USART6_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>USART3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>USART2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>USART1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>USART10_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>UART9_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>UART8_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>UART7_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>UART5_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>UART4_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM8_UP_TIM13_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM8_TRG_COM_TIM14_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM8_CC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM8_BRK_TIM12_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM7_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM6_DAC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM5_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM4_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM24_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM23_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM1_UP_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM1_TRG_COM_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM1_CC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM1_BRK_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM17_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM16_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TIM15_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>TAMP_STAMP_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SWPMI1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SPI6_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SPI5_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SPI3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SPI2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SPI1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SPDIF_RX_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SDMMC2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SDMMC1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SAI4_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>SAI1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>RTC_WKUP_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>RTC_Alarm_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>RNG_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>RCC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>PVD_AVD_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>OTG_HS_WKUP_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>OTG_HS_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>OTG_HS_EP1_OUT_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>OTG_HS_EP1_IN_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>OCTOSPI2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>OCTOSPI1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>NMI_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>MemManage_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>MDMA_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>MDIOS_WKUP_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>MDIOS_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>LTDC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>LTDC_ER_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>LPUART1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>LPTIM5_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>LPTIM4_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>LPTIM3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>LPTIM2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>LPTIM1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C5_EV_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C5_ER_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C4_EV_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C4_ER_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C3_EV_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C3_ER_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C2_EV_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C2_ER_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C1_EV_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>I2C1_ER_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>HardFault_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>HSEM1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FPU_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FMC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FMAC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FLASH_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FDCAN_CAL_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FDCAN3_IT1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FDCAN3_IT0_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FDCAN2_IT1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FDCAN2_IT0_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FDCAN1_IT1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>FDCAN1_IT0_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>EXTI9_5_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>EXTI4_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>EXTI3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>EXTI2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>EXTI1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>EXTI15_10_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>EXTI0_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>ETH_WKUP_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>ETH_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>ECC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DTS_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMAMUX2_OVR_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMAMUX1_OVR_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2_Stream7_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2_Stream6_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2_Stream5_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2_Stream4_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2_Stream3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2_Stream2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2_Stream1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2_Stream0_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA2D_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA1_Stream7_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA1_Stream6_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA1_Stream5_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA1_Stream4_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA1_Stream3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA1_Stream2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DMA1_Stream1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DFSDM1_FLT3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DFSDM1_FLT2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DFSDM1_FLT1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DFSDM1_FLT0_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>DCMI_PSSI_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>CRS_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>CORDIC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>COMP1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>CEC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BusFault_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BDMA_Channel7_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BDMA_Channel6_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BDMA_Channel5_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BDMA_Channel4_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BDMA_Channel3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BDMA_Channel2_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BDMA_Channel1_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>BDMA_Channel0_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>ADC_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172D</code></td>
+    <td align="left"><code>ADC3_IRQHandler</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172F</code></td>
+    <td align="left"><code>SVC_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172F</code></td>
+    <td align="left"><code>PendSV_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800172F</code></td>
+    <td align="left"><code>DebugMon_Handler</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08001731</code></td>
+    <td align="left"><code>SPI4_IRQHandler</code></td>
+    <td align="right"><code>630</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x080019A7</code></td>
     <td align="left"><code>SystemInit</code></td>
     <td align="right"><code>166</code></td>
@@ -3054,1312 +4783,7 @@
   </tr>
   <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>WWDG_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>WAKEUP_PIN_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>UsageFault_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>USART6_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>USART3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>USART2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>USART1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>USART10_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>UART9_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>UART8_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>UART7_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>UART5_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>UART4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM8_UP_TIM13_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM8_TRG_COM_TIM14_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM8_CC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM8_BRK_TIM12_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM7_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM6_DAC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM5_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM24_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM23_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM1_UP_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM1_TRG_COM_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM1_CC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM1_BRK_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM17_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM16_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TIM15_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>TAMP_STAMP_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SWPMI1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SPI6_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SPI5_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SPI4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SPI3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SPI2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SPI1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SPDIF_RX_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SDMMC2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SDMMC1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SAI4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>SAI1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>RTC_WKUP_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>RTC_Alarm_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>RNG_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>RCC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>PVD_AVD_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>OTG_HS_WKUP_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>OTG_HS_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>OTG_HS_EP1_OUT_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>OTG_HS_EP1_IN_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>OCTOSPI2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>OCTOSPI1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>NMI_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>MemManage_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>MDMA_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>MDIOS_WKUP_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>MDIOS_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>LTDC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>LTDC_ER_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>LPUART1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>LPTIM5_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>LPTIM4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>LPTIM3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>LPTIM2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>LPTIM1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C5_EV_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C5_ER_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C4_EV_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C4_ER_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C3_EV_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C3_ER_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C2_EV_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C2_ER_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C1_EV_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>I2C1_ER_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>HardFault_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>HSEM1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FPU_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FMC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FMAC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FLASH_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FDCAN_CAL_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FDCAN3_IT1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FDCAN3_IT0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FDCAN2_IT1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FDCAN2_IT0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FDCAN1_IT1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>FDCAN1_IT0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>EXTI9_5_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>EXTI4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>EXTI3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>EXTI2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>EXTI1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>EXTI15_10_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>EXTI0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>ETH_WKUP_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>ETH_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>ECC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DTS_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMAMUX2_OVR_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMAMUX1_OVR_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2_Stream7_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2_Stream6_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2_Stream5_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2_Stream4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2_Stream3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2_Stream2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2_Stream1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2_Stream0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA2D_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA1_Stream7_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA1_Stream6_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA1_Stream5_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA1_Stream4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA1_Stream3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA1_Stream2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA1_Stream1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DMA1_Stream0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DFSDM1_FLT3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DFSDM1_FLT2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DFSDM1_FLT1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DFSDM1_FLT0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>DCMI_PSSI_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>CRS_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>CORDIC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>COMP1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>CEC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BusFault_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BDMA_Channel7_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BDMA_Channel6_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BDMA_Channel5_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BDMA_Channel4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BDMA_Channel3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BDMA_Channel2_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BDMA_Channel1_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>BDMA_Channel0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>ADC_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AD</code></td>
-    <td align="left"><code>ADC3_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AF</code></td>
-    <td align="left"><code>SVC_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AF</code></td>
-    <td align="left"><code>PendSV_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007AF</code></td>
-    <td align="left"><code>DebugMon_Handler</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080007B1</code></td>
-    <td align="left"><code>HAL_Init</code></td>
-    <td align="right"><code>114</code></td>
+    <td align="right"><code>0x08001A4D</code></td>
+    <td align="left"><code>HAL_InitTick</code></td>
+    <td align="right"><code>90</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>Code</code></td>
@@ -4368,14 +4792,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000823</code></td>
-    <td align="left"><code>HAL_RTC_Init</code></td>
-    <td align="right"><code>382</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Lc</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x080009A1</code></td>
+    <td align="right"><code>0x08001AA7</code></td>
     <td align="left"><code>HAL_RTC_WaitForSynchro</code></td>
     <td align="right"><code>54</code></td>
@@ -4386,14 +4801,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x080009D7</code></td>
-    <td align="left"><code>main</code></td>
-    <td align="right"><code>304</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>charger_lto.o</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x08000B07</code></td>
+    <td align="right"><code>0x08001ADD</code></td>
     <td align="left"><code>SysTick_Handler</code></td>
     <td align="right"><code>16</code></td>
@@ -4404,7 +4810,16 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000B17</code></td>
-    <td align="left"><code>HAL_InitTick</code></td>
-    <td align="right"><code>128</code></td>
+    <td align="right"><code>0x08001AED</code></td>
+    <td align="left"><code>DMA1_Stream0_IRQHandler</code></td>
+    <td align="right"><code>1 012</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x08001EE1</code></td>
+    <td align="left"><code>HAL_NVIC_SetPriority</code></td>
+    <td align="right"><code>76</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>Code</code></td>
@@ -4413,5 +4828,41 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000B97</code></td>
+    <td align="right"><code>0x08001F2D</code></td>
+    <td align="left"><code>RCCEx_PLL2_Config</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800203D</code></td>
+    <td align="left"><code>RCCEx_PLL3_Config</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800214D</code></td>
+    <td align="left"><code>HAL_DMA_Abort_IT</code></td>
+    <td align="right"><code>428</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x080022F9</code></td>
+    <td align="left"><code>SPI_DMAAbortOnError</code></td>
+    <td align="right"><code>20</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0800230D</code></td>
     <td align="left"><code>reset_handler</code></td>
     <td align="right"><code>24</code></td>
@@ -4422,5 +4873,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000B97</code></td>
+    <td align="right"><code>0x0800230D</code></td>
     <td align="left"><code>Reset_Handler</code></td>
     <td align="right"><code>24</code></td>
@@ -4431,5 +4882,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000BE5</code></td>
+    <td align="right"><code>0x08002359</code></td>
     <td align="left"><code>__SEGGER_init_zero</code></td>
     <td align="right"><code>18</code></td>
@@ -4440,5 +4891,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000BF7</code></td>
+    <td align="right"><code>0x0800236B</code></td>
     <td align="left"><code>__SEGGER_init_copy</code></td>
     <td align="right"><code>20</code></td>
@@ -4460,7 +4911,7 @@
   </tr>
   <tr>
-    <td align="left"><code>SystemClock_Config()</code></td>
-    <td align="right"><code>794</code></td>
-    <td align="right"><code>2</code></td>
+    <td align="left"><code>HAL_RCCEx_PeriphCLKConfig</code></td>
+    <td align="right"><code>2 100</code></td>
+    <td align="right"><code>4</code></td>
     <td align="left"><code>Code</code></td>
     <td align="left"><code>Lc</code></td>
@@ -4468,7 +4919,15 @@
   </tr>
   <tr>
-    <td align="left"><code>HAL_RTC_Init</code></td>
-    <td align="right"><code>382</code></td>
-    <td align="right"><code>2</code></td>
+    <td align="left"><code>main</code></td>
+    <td align="right"><code>1 566</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_SPI_Init</code></td>
+    <td align="right"><code>1 158</code></td>
+    <td align="right"><code>4</code></td>
     <td align="left"><code>Code</code></td>
     <td align="left"><code>Lc</code></td>
@@ -4476,9 +4935,41 @@
   </tr>
   <tr>
-    <td align="left"><code>main</code></td>
-    <td align="right"><code>304</code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>DMA1_Stream0_IRQHandler</code></td>
+    <td align="right"><code>1 012</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>SPI4_IRQHandler</code></td>
+    <td align="right"><code>630</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>HAL_DMA_Abort_IT</code></td>
+    <td align="right"><code>428</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>RCCEx_PLL2_Config</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>RCCEx_PLL3_Config</code></td>
+    <td align="right"><code>272</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
     <td align="left"><code>charger_lto.o</code></td>
   </tr>
@@ -4500,6 +4991,14 @@
   </tr>
   <tr>
+    <td align="left"><code>__aeabi_memclr</code></td>
+    <td align="right"><code>104</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
     <td align="left"><code>HAL_InitTick</code></td>
-    <td align="right"><code>128</code></td>
+    <td align="right"><code>90</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>Code</code></td>
@@ -4508,6 +5007,6 @@
   </tr>
   <tr>
-    <td align="left"><code>HAL_Init</code></td>
-    <td align="right"><code>114</code></td>
+    <td align="left"><code>HAL_NVIC_SetPriority</code></td>
+    <td align="right"><code>76</code></td>
     <td align="right"><code>2</code></td>
     <td align="left"><code>Code</code></td>
@@ -4538,4 +5037,12 @@
     <td align="left"><code>Gb</code></td>
     <td align="left"><code>Cortex_M_Startup.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>SPI_DMAAbortOnError</code></td>
+    <td align="right"><code>20</code></td>
+    <td align="right"><code>2</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
   </tr>
   <tr>
@@ -4796,12 +5303,4 @@
   </tr>
   <tr>
-    <td align="left"><code>DMA1_Stream0_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
     <td align="left"><code>DMA1_Stream1_IRQHandler</code></td>
     <td align="right"><code></code></td>
@@ -5452,12 +5951,4 @@
   </tr>
   <tr>
-    <td align="left"><code>SPI4_IRQHandler</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code>2</code></td>
-    <td align="left"><code>Code</code></td>
-    <td align="left"><code>Wk</code></td>
-    <td align="left"><code>stm32h723xx_Vectors.o</code></td>
-  </tr>
-  <tr>
     <td align="left"><code>SPI5_IRQHandler</code></td>
     <td align="right"><code></code></td>
@@ -5748,4 +6239,44 @@
   </tr>
   <tr>
+    <td align="left"><code>__aeabi_memclr4</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memclr8</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memset</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memset4</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>__aeabi_memset8</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
+  </tr>
+  <tr>
     <td align="left"><code>__startup_complete</code></td>
     <td align="right"><code></code></td>
@@ -5754,4 +6285,12 @@
     <td align="left"><code>Gb</code></td>
     <td align="left"><code>SEGGER_THUMB_Startup.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>memset</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Code</code></td>
+    <td align="left"><code>Wk</code></td>
+    <td align="left"><code>strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a)</code></td>
   </tr>
 </table>
@@ -5769,5 +6308,5 @@
   <tr>
     <td align="left"><code>SystemCoreClock</code></td>
-    <td align="right"><code>0x3000002C</code></td>
+    <td align="right"><code>0x3000012C</code></td>
     <td align="right"><code>4</code></td>
     <td align="right"><code>4</code></td>
@@ -5777,6 +6316,15 @@
   </tr>
   <tr>
+    <td align="left"><code>hdma_spi4_tx</code></td>
+    <td align="right"><code>0x30000088</code></td>
+    <td align="right"><code>120</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
     <td align="left"><code>hrtc</code></td>
-    <td align="right"><code>0x30000000</code></td>
+    <td align="right"><code>0x30000100</code></td>
     <td align="right"><code>36</code></td>
     <td align="right"><code>4</code></td>
@@ -5786,6 +6334,15 @@
   </tr>
   <tr>
+    <td align="left"><code>hspi4</code></td>
+    <td align="right"><code>0x30000000</code></td>
+    <td align="right"><code>136</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
     <td align="left"><code>uwTick</code></td>
-    <td align="right"><code>0x30000024</code></td>
+    <td align="right"><code>0x30000124</code></td>
     <td align="right"><code>4</code></td>
     <td align="right"><code>4</code></td>
@@ -5796,5 +6353,5 @@
   <tr>
     <td align="left"><code>uwTickPrio</code></td>
-    <td align="right"><code>0x30000028</code></td>
+    <td align="right"><code>0x30000128</code></td>
     <td align="right"><code>1</code></td>
     <td align="right"><code>4</code></td>
@@ -5817,4 +6374,22 @@
   <tr>
     <td align="right"><code>0x30000000</code></td>
+    <td align="left"><code>hspi4</code></td>
+    <td align="right"><code>136</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x30000088</code></td>
+    <td align="left"><code>hdma_spi4_tx</code></td>
+    <td align="right"><code>120</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x30000100</code></td>
     <td align="left"><code>hrtc</code></td>
     <td align="right"><code>36</code></td>
@@ -5825,5 +6400,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x30000024</code></td>
+    <td align="right"><code>0x30000124</code></td>
     <td align="left"><code>uwTick</code></td>
     <td align="right"><code>4</code></td>
@@ -5834,5 +6409,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x30000028</code></td>
+    <td align="right"><code>0x30000128</code></td>
     <td align="left"><code>uwTickPrio</code></td>
     <td align="right"><code>1</code></td>
@@ -5843,5 +6418,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x3000002C</code></td>
+    <td align="right"><code>0x3000012C</code></td>
     <td align="left"><code>SystemCoreClock</code></td>
     <td align="right"><code>4</code></td>
@@ -5861,4 +6436,20 @@
     <th align="left">Bd</th>
     <th align="left">Object File</th>
+  </tr>
+  <tr>
+    <td align="left"><code>hspi4</code></td>
+    <td align="right"><code>136</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
+  </tr>
+  <tr>
+    <td align="left"><code>hdma_spi4_tx</code></td>
+    <td align="right"><code>120</code></td>
+    <td align="right"><code>4</code></td>
+    <td align="left"><code>Zero</code></td>
+    <td align="left"><code>Lc</code></td>
+    <td align="left"><code>charger_lto.o</code></td>
   </tr>
   <tr>
@@ -5908,5 +6499,5 @@
   <tr>
     <td align="left"><code>D1CorePrescTable</code></td>
-    <td align="right"><code>0x08000BAE</code></td>
+    <td align="right"><code>0x08002324</code></td>
     <td align="right"><code>16</code></td>
     <td align="right"><code></code></td>
@@ -5917,5 +6508,5 @@
   <tr>
     <td align="left"><code>__SEGGER_init_data__</code></td>
-    <td align="right"><code>0x08000BE0</code></td>
+    <td align="right"><code>0x08002354</code></td>
     <td align="right"><code>[4]</code></td>
     <td align="right"><code>4</code></td>
@@ -5926,5 +6517,5 @@
   <tr>
     <td align="left"><code>__SEGGER_init_table__</code></td>
-    <td align="right"><code>0x08000BC0</code></td>
+    <td align="right"><code>0x08002334</code></td>
     <td align="right"><code>[32]</code></td>
     <td align="right"><code>4</code></td>
@@ -5946,5 +6537,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000BAE</code></td>
+    <td align="right"><code>0x08002324</code></td>
     <td align="left"><code>D1CorePrescTable</code></td>
     <td align="right"><code>16</code></td>
@@ -5955,5 +6546,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000BC0</code></td>
+    <td align="right"><code>0x08002334</code></td>
     <td align="left"><code>__SEGGER_init_table__</code></td>
     <td align="right"><code>[32]</code></td>
@@ -5964,5 +6555,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000BE0</code></td>
+    <td align="right"><code>0x08002354</code></td>
     <td align="left"><code>__SEGGER_init_data__</code></td>
     <td align="right"><code>[4]</code></td>
@@ -6175,5 +6766,5 @@
   <tr>
     <td align="left"><code>__FLASH1_segment_used_end__</code></td>
-    <td align="right"><code>0x08000C0A</code></td>
+    <td align="right"><code>0x0800237E</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -6184,5 +6775,5 @@
   <tr>
     <td align="left"><code>__FLASH1_segment_used_size__</code></td>
-    <td align="right"><code>0x00000C0A</code></td>
+    <td align="right"><code>0x0000237E</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -6229,5 +6820,5 @@
   <tr>
     <td align="left"><code>__FLASH_segment_used_end__</code></td>
-    <td align="right"><code>0x08000C0A</code></td>
+    <td align="right"><code>0x0800237E</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -6238,5 +6829,5 @@
   <tr>
     <td align="left"><code>__FLASH_segment_used_size__</code></td>
-    <td align="right"><code>0x00000C0A</code></td>
+    <td align="right"><code>0x0000237E</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -6663,22 +7254,4 @@
   </tr>
   <tr>
-    <td align="right"><code>0x00000C0A</code></td>
-    <td align="left"><code>__FLASH_segment_used_size__</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code></code></td>
-    <td align="left"><code>----</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>[ Linker created ]</code></td>
-  </tr>
-  <tr>
-    <td align="right"><code>0x00000C0A</code></td>
-    <td align="left"><code>__FLASH1_segment_used_size__</code></td>
-    <td align="right"><code></code></td>
-    <td align="right"><code></code></td>
-    <td align="left"><code>----</code></td>
-    <td align="left"><code>Gb</code></td>
-    <td align="left"><code>[ Linker created ]</code></td>
-  </tr>
-  <tr>
     <td align="right"><code>0x00001000</code></td>
     <td align="left"><code>__Backup_RAM_segment_size__</code></td>
@@ -6692,4 +7265,22 @@
     <td align="right"><code>0x00002000</code></td>
     <td align="left"><code>__STACKSIZE__</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="left"><code>----</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>[ Linker created ]</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0000237E</code></td>
+    <td align="left"><code>__FLASH_segment_used_size__</code></td>
+    <td align="right"><code></code></td>
+    <td align="right"><code></code></td>
+    <td align="left"><code>----</code></td>
+    <td align="left"><code>Gb</code></td>
+    <td align="left"><code>[ Linker created ]</code></td>
+  </tr>
+  <tr>
+    <td align="right"><code>0x0000237E</code></td>
+    <td align="left"><code>__FLASH1_segment_used_size__</code></td>
     <td align="right"><code></code></td>
     <td align="right"><code></code></td>
@@ -6852,5 +7443,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000C0A</code></td>
+    <td align="right"><code>0x0800237E</code></td>
     <td align="left"><code>__FLASH_segment_used_end__</code></td>
     <td align="right"><code></code></td>
@@ -6861,5 +7452,5 @@
   </tr>
   <tr>
-    <td align="right"><code>0x08000C0A</code></td>
+    <td align="right"><code>0x0800237E</code></td>
     <td align="left"><code>__FLASH1_segment_used_end__</code></td>
     <td align="right"><code></code></td>
@@ -7232,12 +7823,15 @@
 </table>
 <h2 id="STACK SIZES_Functions without stack size information">Functions without stack size information</h2>
-  HAL_Init
-  SystemClock_Config()
-  HAL_RTC_Init
   HAL_RCC_GetSysClockFreq
   HAL_InitTick
+  HAL_RCCEx_PeriphCLKConfig
   HAL_RTC_WaitForSynchro
+  HAL_SPI_Init
+  SPI_DMAAbortOnError
+  HAL_DMA_Abort_IT
+  HAL_NVIC_SetPriority
+  RCCEx_PLL2_Config
+  RCCEx_PLL3_Config
   main
-  SystemInit
   NMI_Handler
   HardFault_Handler
@@ -7249,4 +7843,7 @@
   PendSV_Handler
   SysTick_Handler
+  DMA1_Stream0_IRQHandler
+  SPI4_IRQHandler
+  SystemInit
   Reset_Handler
   reset_handler
@@ -7266,5 +7863,4 @@
   EXTI3_IRQHandler
   EXTI4_IRQHandler
-  DMA1_Stream0_IRQHandler
   DMA1_Stream1_IRQHandler
   DMA1_Stream2_IRQHandler
@@ -7333,5 +7929,4 @@
   UART7_IRQHandler
   UART8_IRQHandler
-  SPI4_IRQHandler
   SPI5_IRQHandler
   SPI6_IRQHandler
@@ -7394,4 +7989,11 @@
   __SEGGER_init_zero
   __SEGGER_init_copy
+  __aeabi_memclr
+  __aeabi_memclr8
+  __aeabi_memclr4
+  __aeabi_memset8
+  __aeabi_memset4
+  __aeabi_memset
+  memset
 <h1 id="UNUSED INPUTS">UNUSED INPUTS</h1>
 <h2 id="UNUSED INPUTS_Unused object files">Unused object files</h2>
@@ -7400,13 +8002,13 @@
 <h2 id="ABSOLUTE LISTING_Section .vectors from stm32h723xx_Vectors.o, size=716, align=1024">Section .vectors from stm32h723xx_Vectors.o, size=716, align=1024</h2>
 <pre>
-<br/><span id="4{
-#">_vectors:</span>
+<br/><span id="¤Ó
+D">_vectors:</span>
 <span id="A08000000">  0x08000000:  </span>30008000     DC.W       0x30008000               ; R_ARM_ABS32
-<span id="A08000004">  0x08000004:  </span>08000B97     DC.W       <a href="#pêu²i">Reset_Handler</a>
-<span id="A08000008">  0x08000008:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800000c">  0x0800000C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000010">  0x08000010:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000014">  0x08000014:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000018">  0x08000018:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A08000004">  0x08000004:  </span>0800230D     DC.W       <a href="#0ñ]oÛ">Reset_Handler</a>
+<span id="A08000008">  0x08000008:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800000c">  0x0800000C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000010">  0x08000010:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000014">  0x08000014:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000018">  0x08000018:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A0800001c">  0x0800001C:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800001d">  0x0800001D:  </span>00           DC.B       0x00                     ; '\0'
@@ -7425,79 +8027,79 @@
 <span id="A0800002a">  0x0800002A:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800002b">  0x0800002B:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A0800002c">  0x0800002C:  </span>080007AF     DC.W       <a href="#pêu²i">SVC_Handler</a>
-<span id="A08000030">  0x08000030:  </span>080007AF     DC.W       <a href="#pêu²i">SVC_Handler</a>
+<span id="A0800002c">  0x0800002C:  </span>0800172F     DC.W       <a href="#0ñ]oÛ">SVC_Handler</a>
+<span id="A08000030">  0x08000030:  </span>0800172F     DC.W       <a href="#0ñ]oÛ">SVC_Handler</a>
 <span id="A08000034">  0x08000034:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000035">  0x08000035:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000036">  0x08000036:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000037">  0x08000037:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000038">  0x08000038:  </span>080007AF     DC.W       <a href="#pêu²i">SVC_Handler</a>
-<span id="A0800003c">  0x0800003C:  </span>08000B07     DC.W       <a href="#pêu²i">SysTick_Handler</a>
-<span id="A08000040">  0x08000040:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000044">  0x08000044:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000048">  0x08000048:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800004c">  0x0800004C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000050">  0x08000050:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000054">  0x08000054:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000058">  0x08000058:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800005c">  0x0800005C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000060">  0x08000060:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000064">  0x08000064:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000068">  0x08000068:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800006c">  0x0800006C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000070">  0x08000070:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000074">  0x08000074:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000078">  0x08000078:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800007c">  0x0800007C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000080">  0x08000080:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000084">  0x08000084:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000088">  0x08000088:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800008c">  0x0800008C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000090">  0x08000090:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000094">  0x08000094:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000098">  0x08000098:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800009c">  0x0800009C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000a0">  0x080000A0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000a4">  0x080000A4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000a8">  0x080000A8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000ac">  0x080000AC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000b0">  0x080000B0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000b4">  0x080000B4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000b8">  0x080000B8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000bc">  0x080000BC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000c0">  0x080000C0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000c4">  0x080000C4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000c8">  0x080000C8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000cc">  0x080000CC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000d0">  0x080000D0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000d4">  0x080000D4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000d8">  0x080000D8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000dc">  0x080000DC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000e0">  0x080000E0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000e4">  0x080000E4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A08000038">  0x08000038:  </span>0800172F     DC.W       <a href="#0ñ]oÛ">SVC_Handler</a>
+<span id="A0800003c">  0x0800003C:  </span>08001ADD     DC.W       <a href="#0ñ]oÛ">SysTick_Handler</a>
+<span id="A08000040">  0x08000040:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000044">  0x08000044:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000048">  0x08000048:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800004c">  0x0800004C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000050">  0x08000050:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000054">  0x08000054:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000058">  0x08000058:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800005c">  0x0800005C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000060">  0x08000060:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000064">  0x08000064:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000068">  0x08000068:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800006c">  0x0800006C:  </span>08001AED     DC.W       <a href="#^­D">DMA1_Stream0_IRQHandler</a>
+<span id="A08000070">  0x08000070:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000074">  0x08000074:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000078">  0x08000078:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800007c">  0x0800007C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000080">  0x08000080:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000084">  0x08000084:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000088">  0x08000088:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800008c">  0x0800008C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000090">  0x08000090:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000094">  0x08000094:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000098">  0x08000098:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800009c">  0x0800009C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000a0">  0x080000A0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000a4">  0x080000A4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000a8">  0x080000A8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000ac">  0x080000AC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000b0">  0x080000B0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000b4">  0x080000B4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000b8">  0x080000B8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000bc">  0x080000BC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000c0">  0x080000C0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000c4">  0x080000C4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000c8">  0x080000C8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000cc">  0x080000CC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000d0">  0x080000D0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000d4">  0x080000D4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000d8">  0x080000D8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000dc">  0x080000DC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000e0">  0x080000E0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000e4">  0x080000E4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A080000e8">  0x080000E8:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080000e9">  0x080000E9:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080000ea">  0x080000EA:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080000eb">  0x080000EB:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A080000ec">  0x080000EC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000f0">  0x080000F0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000f4">  0x080000F4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000f8">  0x080000F8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080000fc">  0x080000FC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000100">  0x08000100:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000104">  0x08000104:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000108">  0x08000108:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800010c">  0x0800010C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000110">  0x08000110:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000114">  0x08000114:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000118">  0x08000118:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800011c">  0x0800011C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000120">  0x08000120:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000124">  0x08000124:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000128">  0x08000128:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800012c">  0x0800012C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000130">  0x08000130:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000134">  0x08000134:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000138">  0x08000138:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800013c">  0x0800013C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A080000ec">  0x080000EC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000f0">  0x080000F0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000f4">  0x080000F4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000f8">  0x080000F8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080000fc">  0x080000FC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000100">  0x08000100:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000104">  0x08000104:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000108">  0x08000108:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800010c">  0x0800010C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000110">  0x08000110:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000114">  0x08000114:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000118">  0x08000118:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800011c">  0x0800011C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000120">  0x08000120:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000124">  0x08000124:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000128">  0x08000128:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800012c">  0x0800012C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000130">  0x08000130:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000134">  0x08000134:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000138">  0x08000138:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800013c">  0x0800013C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A08000140">  0x08000140:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000141">  0x08000141:  </span>00           DC.B       0x00                     ; '\0'
@@ -7516,40 +8118,40 @@
 <span id="A0800014e">  0x0800014E:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800014f">  0x0800014F:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000150">  0x08000150:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000154">  0x08000154:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000158">  0x08000158:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800015c">  0x0800015C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000160">  0x08000160:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000164">  0x08000164:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000168">  0x08000168:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800016c">  0x0800016C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000170">  0x08000170:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000174">  0x08000174:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000178">  0x08000178:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A08000150">  0x08000150:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000154">  0x08000154:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000158">  0x08000158:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800015c">  0x0800015C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000160">  0x08000160:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000164">  0x08000164:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000168">  0x08000168:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800016c">  0x0800016C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000170">  0x08000170:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000174">  0x08000174:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000178">  0x08000178:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A0800017c">  0x0800017C:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800017d">  0x0800017D:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800017e">  0x0800017E:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800017f">  0x0800017F:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000180">  0x08000180:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000184">  0x08000184:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000188">  0x08000188:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800018c">  0x0800018C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000190">  0x08000190:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000194">  0x08000194:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000198">  0x08000198:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800019c">  0x0800019C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001a0">  0x080001A0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001a4">  0x080001A4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001a8">  0x080001A8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A08000180">  0x08000180:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000184">  0x08000184:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000188">  0x08000188:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800018c">  0x0800018C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000190">  0x08000190:  </span>08001731     DC.W       <a href="#0ñ]oÛ">SPI4_IRQHandler</a>
+<span id="A08000194">  0x08000194:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000198">  0x08000198:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800019c">  0x0800019C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001a0">  0x080001A0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001a4">  0x080001A4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001a8">  0x080001A8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A080001ac">  0x080001AC:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080001ad">  0x080001AD:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080001ae">  0x080001AE:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080001af">  0x080001AF:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A080001b0">  0x080001B0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001b4">  0x080001B4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001b8">  0x080001B8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001bc">  0x080001BC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001c0">  0x080001C0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001c4">  0x080001C4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A080001b0">  0x080001B0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001b4">  0x080001B4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001b8">  0x080001B8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001bc">  0x080001BC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001c0">  0x080001C0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001c4">  0x080001C4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A080001c8">  0x080001C8:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080001c9">  0x080001C9:  </span>00           DC.B       0x00                     ; '\0'
@@ -7568,5 +8170,5 @@
 <span id="A080001d6">  0x080001D6:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080001d7">  0x080001D7:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A080001d8">  0x080001D8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A080001d8">  0x080001D8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A080001dc">  0x080001DC:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080001dd">  0x080001DD:  </span>00           DC.B       0x00                     ; '\0'
@@ -7597,63 +8199,63 @@
 <span id="A080001f6">  0x080001F6:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080001f7">  0x080001F7:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A080001f8">  0x080001F8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080001fc">  0x080001FC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000200">  0x08000200:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000204">  0x08000204:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A080001f8">  0x080001F8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080001fc">  0x080001FC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000200">  0x08000200:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000204">  0x08000204:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A08000208">  0x08000208:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000209">  0x08000209:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800020a">  0x0800020A:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800020b">  0x0800020B:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A0800020c">  0x0800020C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000210">  0x08000210:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000214">  0x08000214:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000218">  0x08000218:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800021c">  0x0800021C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000220">  0x08000220:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A0800020c">  0x0800020C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000210">  0x08000210:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000214">  0x08000214:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000218">  0x08000218:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800021c">  0x0800021C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000220">  0x08000220:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A08000224">  0x08000224:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000225">  0x08000225:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000226">  0x08000226:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000227">  0x08000227:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000228">  0x08000228:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A08000228">  0x08000228:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A0800022c">  0x0800022C:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800022d">  0x0800022D:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800022e">  0x0800022E:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800022f">  0x0800022F:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000230">  0x08000230:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000234">  0x08000234:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A08000230">  0x08000230:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000234">  0x08000234:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A08000238">  0x08000238:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000239">  0x08000239:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800023a">  0x0800023A:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800023b">  0x0800023B:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A0800023c">  0x0800023C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000240">  0x08000240:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000244">  0x08000244:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000248">  0x08000248:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800024c">  0x0800024C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000250">  0x08000250:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000254">  0x08000254:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000258">  0x08000258:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800025c">  0x0800025C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000260">  0x08000260:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000264">  0x08000264:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000268">  0x08000268:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800026c">  0x0800026C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000270">  0x08000270:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000274">  0x08000274:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000278">  0x08000278:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A0800023c">  0x0800023C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000240">  0x08000240:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000244">  0x08000244:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000248">  0x08000248:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800024c">  0x0800024C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000250">  0x08000250:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000254">  0x08000254:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000258">  0x08000258:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800025c">  0x0800025C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000260">  0x08000260:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000264">  0x08000264:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000268">  0x08000268:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800026c">  0x0800026C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000270">  0x08000270:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000274">  0x08000274:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000278">  0x08000278:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A0800027c">  0x0800027C:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800027d">  0x0800027D:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800027e">  0x0800027E:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800027f">  0x0800027F:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000280">  0x08000280:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000284">  0x08000284:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000288">  0x08000288:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A0800028c">  0x0800028C:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A08000280">  0x08000280:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000284">  0x08000284:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000288">  0x08000288:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A0800028c">  0x0800028C:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A08000290">  0x08000290:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000291">  0x08000291:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000292">  0x08000292:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A08000293">  0x08000293:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000294">  0x08000294:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A08000298">  0x08000298:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A08000294">  0x08000294:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A08000298">  0x08000298:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 <span id="A0800029c">  0x0800029C:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A0800029d">  0x0800029D:  </span>00           DC.B       0x00                     ; '\0'
@@ -7664,20 +8266,21 @@
 <span id="A080002a2">  0x080002A2:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A080002a3">  0x080002A3:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A080002a4">  0x080002A4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002a8">  0x080002A8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002ac">  0x080002AC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002b0">  0x080002B0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002b4">  0x080002B4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002b8">  0x080002B8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002bc">  0x080002BC:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002c0">  0x080002C0:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002c4">  0x080002C4:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
-<span id="A080002c8">  0x080002C8:  </span>080007AD     DC.W       <a href="#pêu²i">NMI_Handler</a>
+<span id="A080002a4">  0x080002A4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002a8">  0x080002A8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002ac">  0x080002AC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002b0">  0x080002B0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002b4">  0x080002B4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002b8">  0x080002B8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002bc">  0x080002BC:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002c0">  0x080002C0:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002c4">  0x080002C4:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
+<span id="A080002c8">  0x080002C8:  </span>0800172D     DC.W       <a href="#0ñ]oÛ">NMI_Handler</a>
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .text.HAL_RCC_GetSysClockFreq from charger_lto.o, size=268, align=4">Section .text.HAL_RCC_GetSysClockFreq from charger_lto.o, size=268, align=4</h2>
 <pre>
-<br/><span id="/	#">HAL_RCC_GetSysClockFreq:</span>
-<span id="'{
-#">_vectors_end:</span>
+<br/><span id="=yÑ
+D">HAL_RCC_GetSysClockFreq:</span>
+<span id="Ó
+D">_vectors_end:</span>
 <span id="A080002cc">  0x080002CC:  </span>F244 4100    MOVW       R1, #0x4400
 <span id="A080002d0">  0x080002D0:  </span>F6C5 0102    MOVT       R1, #0x5802
@@ -7774,1221 +8377,3850 @@
 <span id="A080003d4">  0x080003D4:  </span>39000000     DC.W       0x39000000
 </pre>
+<h2 id="ABSOLUTE LISTING_Section .text.HAL_RCCEx_PeriphCLKConfig from charger_lto.o, size=2100, align=4">Section .text.HAL_RCCEx_PeriphCLKConfig from charger_lto.o, size=2100, align=4</h2>
+<pre>
+<br/><span id="0zÑ
+D">HAL_RCCEx_PeriphCLKConfig:</span>
+<span id="A080003d8">  0x080003D8:  </span>E92D 43F8    PUSH.W     {R3-R9, LR}
+<span id="A080003dc">  0x080003DC:  </span>4604         MOV        R4, R0
+<span id="A080003de">  0x080003DE:  </span>78C0         LDRB       R0, [R0, #3]
+<span id="A080003e0">  0x080003E0:  </span>F244 4610    MOVW       R6, #0x4410
+<span id="A080003e4">  0x080003E4:  </span>0700         LSLS       R0, R0, #28
+<span id="A080003e6">  0x080003E6:  </span>F6C5 0602    MOVT       R6, #0x5802
+<span id="A080003ea">  0x080003EA:  </span>D521         BPL        .L3                      ; 0x08000430
+<span id="A080003ec">  0x080003EC:  </span>6E60         LDR        R0, [R4, #100]
+<span id="A080003ee">  0x080003EE:  </span>EA4F 5130    ROR        R1, R0, #20
+<span id="A080003f2">  0x080003F2:  </span>2903         CMP        R1, #3
+<span id="A080003f4">  0x080003F4:  </span>D831         BHI        .L6                      ; 0x0800045A
+<span id="A080003f6">  0x080003F6:  </span>E8DF F001    TBB        [PC, R1]
+<span id="A080003fa">  0x080003FA:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A080003fb">  0x080003FB:  </span>07           DC.B       0x07                     ; '\x07'
+<span id="A080003fc">  0x080003FC:  </span>0D           DC.B       0x0D                     ; '\r'
+<span id="A080003fd">  0x080003FD:  </span>16           DC.B       0x16                     ; '\x16'
+<span id="A080003fe">  0x080003FE:  </span>69F1         LDR        R1, [R6, #28]
+<span id="A08000400">  0x08000400:  </span>F441 3100    ORR        R1, R1, #0x020000
+<span id="A08000404">  0x08000404:  </span>61F1         STR        R1, [R6, #28]
+<span id="A08000406">  0x08000406:  </span>E00E         B          .L2                      ; 0x08000426
+<span id="A08000408">  0x08000408:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A0800040c">  0x0800040C:  </span>2102         MOVS       R1, #2
+<span id="A0800040e">  0x0800040E:  </span>F001 FD8D    BL         <a href="#àc­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000412">  0x08000412:  </span>E004         B          .L1                      ; 0x0800041E
+<span id="A08000414">  0x08000414:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000418">  0x08000418:  </span>2102         MOVS       R1, #2
+<span id="A0800041a">  0x0800041A:  </span>F001 FE0F    BL         <a href="#^­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L1:
+<span id="A0800041e">  0x0800041E:  </span>EA5F 0800    MOVS.W     R8, R0
+<span id="A08000422">  0x08000422:  </span>D107         BNE        .L4                      ; 0x08000434
+<span id="A08000424">  0x08000424:  </span>6E60         LDR        R0, [R4, #100]
+<br/>.L2:
+<span id="A08000426">  0x08000426:  </span>6C31         LDR        R1, [R6, #64]
+<span id="A08000428">  0x08000428:  </span>F421 1140    BIC        R1, R1, #0x300000
+<span id="A0800042c">  0x0800042C:  </span>4308         ORRS       R0, R1
+<span id="A0800042e">  0x0800042E:  </span>6430         STR        R0, [R6, #64]
+<br/>.L3:
+<span id="A08000430">  0x08000430:  </span>F04F 0800    MOV.W      R8, #0
+<br/>.L4:
+<span id="A08000434">  0x08000434:  </span>7860         LDRB       R0, [R4, #1]
+<span id="A08000436">  0x08000436:  </span>07C0         LSLS       R0, R0, #31
+<span id="A08000438">  0x08000438:  </span>D101         BNE        .L5                      ; 0x0800043E
+<span id="A0800043a">  0x0800043A:  </span>4645         MOV        R5, R8
+<span id="A0800043c">  0x0800043C:  </span>E024         B          .L9                      ; 0x08000488
+<br/>.L5:
+<span id="A0800043e">  0x0800043E:  </span>6DA0         LDR        R0, [R4, #88]
+<span id="A08000440">  0x08000440:  </span>2804         CMP        R0, #4
+<span id="A08000442">  0x08000442:  </span>D835         BHI        .L11                     ; 0x080004B0
+<span id="A08000444">  0x08000444:  </span>4645         MOV        R5, R8
+<span id="A08000446">  0x08000446:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A0800044a">  0x0800044A:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A0800044b">  0x0800044B:  </span>11           DC.B       0x11                     ; '\x11'
+<span id="A0800044c">  0x0800044C:  </span>0B           DC.B       0x0B                     ; '\v'
+<span id="A0800044d">  0x0800044D:  </span>17           DC.B       0x17                     ; '\x17'
+<span id="A0800044e">  0x0800044E:  </span>17           DC.B       0x17                     ; '\x17'
+<span id="A0800044f">  0x0800044F:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08000450">  0x08000450:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A08000452">  0x08000452:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A08000456">  0x08000456:  </span>61F0         STR        R0, [R6, #28]
+<span id="A08000458">  0x08000458:  </span>E00E         B          .L8                      ; 0x08000478
+<br/>.L6:
+<span id="A0800045a">  0x0800045A:  </span>F04F 0801    MOV.W      R8, #1
+<span id="A0800045e">  0x0800045E:  </span>E7E9         B          .L4                      ; 0x08000434
+<span id="A08000460">  0x08000460:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000464">  0x08000464:  </span>2100         MOVS       R1, #0
+<span id="A08000466">  0x08000466:  </span>F001 FDE9    BL         <a href="#^­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A0800046a">  0x0800046A:  </span>E004         B          .L7                      ; 0x08000476
+<span id="A0800046c">  0x0800046C:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000470">  0x08000470:  </span>2100         MOVS       R1, #0
+<span id="A08000472">  0x08000472:  </span>F001 FD5B    BL         <a href="#@d­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<br/>.L7:
+<span id="A08000476">  0x08000476:  </span>4605         MOV        R5, R0
+<br/>.L8:
+<span id="A08000478">  0x08000478:  </span>462F         MOV        R7, R5
+<span id="A0800047a">  0x0800047A:  </span>B935         CBNZ       R5, .L10                 ; 0x0800048A
+<span id="A0800047c">  0x0800047C:  </span>6C30         LDR        R0, [R6, #64]
+<span id="A0800047e">  0x0800047E:  </span>6DA1         LDR        R1, [R4, #88]
+<span id="A08000480">  0x08000480:  </span>F020 0007    BIC        R0, R0, #7
+<span id="A08000484">  0x08000484:  </span>4308         ORRS       R0, R1
+<span id="A08000486">  0x08000486:  </span>6430         STR        R0, [R6, #64]
+<br/>.L9:
+<span id="A08000488">  0x08000488:  </span>4647         MOV        R7, R8
+<br/>.L10:
+<span id="A0800048a">  0x0800048A:  </span>7860         LDRB       R0, [R4, #1]
+<span id="A0800048c">  0x0800048C:  </span>0740         LSLS       R0, R0, #29
+<span id="A0800048e">  0x0800048E:  </span>D52A         BPL        .L15                     ; 0x080004E6
+<span id="A08000490">  0x08000490:  </span>F8D4 00A4    LDR.W      R0, [R4, #164]
+<span id="A08000494">  0x08000494:  </span>EA4F 5070    ROR        R0, R0, #21
+<span id="A08000498">  0x08000498:  </span>2805         CMP        R0, #5
+<span id="A0800049a">  0x0800049A:  </span>D812         BHI        .L12                     ; 0x080004C2
+<span id="A0800049c">  0x0800049C:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A080004a0">  0x080004A0:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A080004a1">  0x080004A1:  </span>14           DC.B       0x14                     ; '\x14'
+<span id="A080004a2">  0x080004A2:  </span>0B           DC.B       0x0B                     ; '\v'
+<span id="A080004a3">  0x080004A3:  </span>1A           DC.B       0x1A                     ; '\x1A'
+<span id="A080004a4">  0x080004A4:  </span>1A           DC.B       0x1A                     ; '\x1A'
+<span id="A080004a5">  0x080004A5:  </span>1A           DC.B       0x1A                     ; '\x1A'
+<span id="A080004a6">  0x080004A6:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A080004a8">  0x080004A8:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A080004ac">  0x080004AC:  </span>61F0         STR        R0, [R6, #28]
+<span id="A080004ae">  0x080004AE:  </span>E011         B          .L14                     ; 0x080004D4
+<br/>.L11:
+<span id="A080004b0">  0x080004B0:  </span>2501         MOVS       R5, #1
+<span id="A080004b2">  0x080004B2:  </span>2701         MOVS       R7, #1
+<span id="A080004b4">  0x080004B4:  </span>E7E9         B          .L10                     ; 0x0800048A
+<span id="A080004b6">  0x080004B6:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A080004ba">  0x080004BA:  </span>2100         MOVS       R1, #0
+<span id="A080004bc">  0x080004BC:  </span>F001 FDBE    BL         <a href="#àf­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A080004c0">  0x080004C0:  </span>E007         B          .L13                     ; 0x080004D2
+<br/>.L12:
+<span id="A080004c2">  0x080004C2:  </span>2501         MOVS       R5, #1
+<span id="A080004c4">  0x080004C4:  </span>46A8         MOV        R8, R5
+<span id="A080004c6">  0x080004C6:  </span>E00F         B          .L16                     ; 0x080004E8
+<span id="A080004c8">  0x080004C8:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A080004cc">  0x080004CC:  </span>2100         MOVS       R1, #0
+<span id="A080004ce">  0x080004CE:  </span>F001 FD2D    BL         <a href="#`b­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<br/>.L13:
+<span id="A080004d2">  0x080004D2:  </span>4605         MOV        R5, R0
+<br/>.L14:
+<span id="A080004d4">  0x080004D4:  </span>46A8         MOV        R8, R5
+<span id="A080004d6">  0x080004D6:  </span>B93D         CBNZ       R5, .L16                 ; 0x080004E8
+<span id="A080004d8">  0x080004D8:  </span>6CB0         LDR        R0, [R6, #72]
+<span id="A080004da">  0x080004DA:  </span>F8D4 10A4    LDR.W      R1, [R4, #164]
+<span id="A080004de">  0x080004DE:  </span>F420 0060    BIC        R0, R0, #0xE00000
+<span id="A080004e2">  0x080004E2:  </span>4308         ORRS       R0, R1
+<span id="A080004e4">  0x080004E4:  </span>64B0         STR        R0, [R6, #72]
+<br/>.L15:
+<span id="A080004e6">  0x080004E6:  </span>46B8         MOV        R8, R7
+<br/>.L16:
+<span id="A080004e8">  0x080004E8:  </span>7860         LDRB       R0, [R4, #1]
+<span id="A080004ea">  0x080004EA:  </span>0700         LSLS       R0, R0, #28
+<span id="A080004ec">  0x080004EC:  </span>D527         BPL        .L20                     ; 0x0800053E
+<span id="A080004ee">  0x080004EE:  </span>F8D4 00A8    LDR.W      R0, [R4, #168]
+<span id="A080004f2">  0x080004F2:  </span>EA4F 6030    ROR        R0, R0, #24
+<span id="A080004f6">  0x080004F6:  </span>2805         CMP        R0, #5
+<span id="A080004f8">  0x080004F8:  </span>D80F         BHI        .L17                     ; 0x0800051A
+<span id="A080004fa">  0x080004FA:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A080004fe">  0x080004FE:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A080004ff">  0x080004FF:  </span>11           DC.B       0x11                     ; '\x11'
+<span id="A08000500">  0x08000500:  </span>08           DC.B       0x08                     ; '\b'
+<span id="A08000501">  0x08000501:  </span>17           DC.B       0x17                     ; '\x17'
+<span id="A08000502">  0x08000502:  </span>17           DC.B       0x17                     ; '\x17'
+<span id="A08000503">  0x08000503:  </span>17           DC.B       0x17                     ; '\x17'
+<span id="A08000504">  0x08000504:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A08000506">  0x08000506:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A0800050a">  0x0800050A:  </span>61F0         STR        R0, [R6, #28]
+<span id="A0800050c">  0x0800050C:  </span>E00E         B          .L19                     ; 0x0800052C
+<span id="A0800050e">  0x0800050E:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000512">  0x08000512:  </span>2100         MOVS       R1, #0
+<span id="A08000514">  0x08000514:  </span>F001 FD92    BL         <a href="#Ð^­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A08000518">  0x08000518:  </span>E007         B          .L18                     ; 0x0800052A
+<br/>.L17:
+<span id="A0800051a">  0x0800051A:  </span>2501         MOVS       R5, #1
+<span id="A0800051c">  0x0800051C:  </span>2701         MOVS       R7, #1
+<span id="A0800051e">  0x0800051E:  </span>E00F         B          .L21                     ; 0x08000540
+<span id="A08000520">  0x08000520:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000524">  0x08000524:  </span>2100         MOVS       R1, #0
+<span id="A08000526">  0x08000526:  </span>F001 FD01    BL         <a href="#pg­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<br/>.L18:
+<span id="A0800052a">  0x0800052A:  </span>4605         MOV        R5, R0
+<br/>.L19:
+<span id="A0800052c">  0x0800052C:  </span>462F         MOV        R7, R5
+<span id="A0800052e">  0x0800052E:  </span>B93D         CBNZ       R5, .L21                 ; 0x08000540
+<span id="A08000530">  0x08000530:  </span>6CB0         LDR        R0, [R6, #72]
+<span id="A08000532">  0x08000532:  </span>F8D4 10A8    LDR.W      R1, [R4, #168]
+<span id="A08000536">  0x08000536:  </span>F020 60E0    BIC        R0, R0, #0x07000000
+<span id="A0800053a">  0x0800053A:  </span>4308         ORRS       R0, R1
+<span id="A0800053c">  0x0800053C:  </span>64B0         STR        R0, [R6, #72]
+<br/>.L20:
+<span id="A0800053e">  0x0800053E:  </span>4647         MOV        R7, R8
+<br/>.L21:
+<span id="A08000540">  0x08000540:  </span>78E0         LDRB       R0, [R4, #3]
+<span id="A08000542">  0x08000542:  </span>0780         LSLS       R0, R0, #30
+<span id="A08000544">  0x08000544:  </span>D51B         BPL        .L23                     ; 0x0800057E
+<span id="A08000546">  0x08000546:  </span>6CE0         LDR        R0, [R4, #76]
+<span id="A08000548">  0x08000548:  </span>EA4F 1030    ROR        R0, R0, #4
+<span id="A0800054c">  0x0800054C:  </span>2803         CMP        R0, #3
+<span id="A0800054e">  0x0800054E:  </span>D829         BHI        .L25                     ; 0x080005A4
+<span id="A08000550">  0x08000550:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A08000554">  0x08000554:  </span>0D           DC.B       0x0D                     ; '\r'
+<span id="A08000555">  0x08000555:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A08000556">  0x08000556:  </span>07           DC.B       0x07                     ; '\x07'
+<span id="A08000557">  0x08000557:  </span>0D           DC.B       0x0D                     ; '\r'
+<span id="A08000558">  0x08000558:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A0800055a">  0x0800055A:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A0800055e">  0x0800055E:  </span>61F0         STR        R0, [R6, #28]
+<span id="A08000560">  0x08000560:  </span>E005         B          .L22                     ; 0x0800056E
+<span id="A08000562">  0x08000562:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000566">  0x08000566:  </span>2102         MOVS       R1, #2
+<span id="A08000568">  0x08000568:  </span>F001 FCE0    BL         <a href="# f­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A0800056c">  0x0800056C:  </span>4605         MOV        R5, R0
+<br/>.L22:
+<span id="A0800056e">  0x0800056E:  </span>46A8         MOV        R8, R5
+<span id="A08000570">  0x08000570:  </span>B935         CBNZ       R5, .L24                 ; 0x08000580
+<span id="A08000572">  0x08000572:  </span>6BF0         LDR        R0, [R6, #60]
+<span id="A08000574">  0x08000574:  </span>6CE1         LDR        R1, [R4, #76]
+<span id="A08000576">  0x08000576:  </span>F020 0030    BIC        R0, R0, #48
+<span id="A0800057a">  0x0800057A:  </span>4308         ORRS       R0, R1
+<span id="A0800057c">  0x0800057C:  </span>63F0         STR        R0, [R6, #60]
+<br/>.L23:
+<span id="A0800057e">  0x0800057E:  </span>46B8         MOV        R8, R7
+<br/>.L24:
+<span id="A08000580">  0x08000580:  </span>7860         LDRB       R0, [R4, #1]
+<span id="A08000582">  0x08000582:  </span>06C0         LSLS       R0, R0, #27
+<span id="A08000584">  0x08000584:  </span>D525         BPL        .L28                     ; 0x080005D2
+<span id="A08000586">  0x08000586:  </span>6DE0         LDR        R0, [R4, #92]
+<span id="A08000588">  0x08000588:  </span>EA4F 3030    ROR        R0, R0, #12
+<span id="A0800058c">  0x0800058C:  </span>2804         CMP        R0, #4
+<span id="A0800058e">  0x0800058E:  </span>D835         BHI        .L30                     ; 0x080005FC
+<span id="A08000590">  0x08000590:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A08000594">  0x08000594:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A08000595">  0x08000595:  </span>11           DC.B       0x11                     ; '\x11'
+<span id="A08000596">  0x08000596:  </span>0B           DC.B       0x0B                     ; '\v'
+<span id="A08000597">  0x08000597:  </span>17           DC.B       0x17                     ; '\x17'
+<span id="A08000598">  0x08000598:  </span>17           DC.B       0x17                     ; '\x17'
+<span id="A08000599">  0x08000599:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800059a">  0x0800059A:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A0800059c">  0x0800059C:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A080005a0">  0x080005A0:  </span>61F0         STR        R0, [R6, #28]
+<span id="A080005a2">  0x080005A2:  </span>E00E         B          .L27                     ; 0x080005C2
+<br/>.L25:
+<span id="A080005a4">  0x080005A4:  </span>2501         MOVS       R5, #1
+<span id="A080005a6">  0x080005A6:  </span>46A8         MOV        R8, R5
+<span id="A080005a8">  0x080005A8:  </span>E7EA         B          .L24                     ; 0x08000580
+<span id="A080005aa">  0x080005AA:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A080005ae">  0x080005AE:  </span>2100         MOVS       R1, #0
+<span id="A080005b0">  0x080005B0:  </span>F001 FD44    BL         <a href="#àc­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A080005b4">  0x080005B4:  </span>E004         B          .L26                     ; 0x080005C0
+<span id="A080005b6">  0x080005B6:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A080005ba">  0x080005BA:  </span>2100         MOVS       R1, #0
+<span id="A080005bc">  0x080005BC:  </span>F001 FCB6    BL         <a href="#^­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<br/>.L26:
+<span id="A080005c0">  0x080005C0:  </span>4605         MOV        R5, R0
+<br/>.L27:
+<span id="A080005c2">  0x080005C2:  </span>462F         MOV        R7, R5
+<span id="A080005c4">  0x080005C4:  </span>B935         CBNZ       R5, .L29                 ; 0x080005D4
+<span id="A080005c6">  0x080005C6:  </span>6C30         LDR        R0, [R6, #64]
+<span id="A080005c8">  0x080005C8:  </span>6DE1         LDR        R1, [R4, #92]
+<span id="A080005ca">  0x080005CA:  </span>F420 40E0    BIC        R0, R0, #0x7000
+<span id="A080005ce">  0x080005CE:  </span>4308         ORRS       R0, R1
+<span id="A080005d0">  0x080005D0:  </span>6430         STR        R0, [R6, #64]
+<br/>.L28:
+<span id="A080005d2">  0x080005D2:  </span>4647         MOV        R7, R8
+<br/>.L29:
+<span id="A080005d4">  0x080005D4:  </span>7860         LDRB       R0, [R4, #1]
+<span id="A080005d6">  0x080005D6:  </span>0680         LSLS       R0, R0, #26
+<span id="A080005d8">  0x080005D8:  </span>D521         BPL        .L32                     ; 0x0800061E
+<span id="A080005da">  0x080005DA:  </span>6E20         LDR        R0, [R4, #96]
+<span id="A080005dc">  0x080005DC:  </span>EA4F 4030    ROR        R0, R0, #16
+<span id="A080005e0">  0x080005E0:  </span>2805         CMP        R0, #5
+<span id="A080005e2">  0x080005E2:  </span>F200 82FB    BHI.W      .L110                    ; 0x08000BDC
+<span id="A080005e6">  0x080005E6:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A080005ea">  0x080005EA:  </span>12           DC.B       0x12                     ; '\x12'
+<span id="A080005eb">  0x080005EB:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A080005ec">  0x080005EC:  </span>0C           DC.B       0x0C                     ; '\x0C'
+<span id="A080005ed">  0x080005ED:  </span>12           DC.B       0x12                     ; '\x12'
+<span id="A080005ee">  0x080005EE:  </span>12           DC.B       0x12                     ; '\x12'
+<span id="A080005ef">  0x080005EF:  </span>12           DC.B       0x12                     ; '\x12'
+<span id="A080005f0">  0x080005F0:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A080005f4">  0x080005F4:  </span>2101         MOVS       R1, #1
+<span id="A080005f6">  0x080005F6:  </span>F001 FC99    BL         <a href="#">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A080005fa">  0x080005FA:  </span>E007         B          .L31                     ; 0x0800060C
+<br/>.L30:
+<span id="A080005fc">  0x080005FC:  </span>2501         MOVS       R5, #1
+<span id="A080005fe">  0x080005FE:  </span>2701         MOVS       R7, #1
+<span id="A08000600">  0x08000600:  </span>E7E8         B          .L29                     ; 0x080005D4
+<span id="A08000602">  0x08000602:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000606">  0x08000606:  </span>2101         MOVS       R1, #1
+<span id="A08000608">  0x08000608:  </span>F001 FD18    BL         <a href="#@d­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L31:
+<span id="A0800060c">  0x0800060C:  </span>4605         MOV        R5, R0
+<span id="A0800060e">  0x0800060E:  </span>46A8         MOV        R8, R5
+<span id="A08000610">  0x08000610:  </span>B935         CBNZ       R5, .L33                 ; 0x08000620
+<span id="A08000612">  0x08000612:  </span>6C30         LDR        R0, [R6, #64]
+<span id="A08000614">  0x08000614:  </span>6E21         LDR        R1, [R4, #96]
+<span id="A08000616">  0x08000616:  </span>F420 20E0    BIC        R0, R0, #0x070000
+<span id="A0800061a">  0x0800061A:  </span>4308         ORRS       R0, R1
+<span id="A0800061c">  0x0800061C:  </span>6430         STR        R0, [R6, #64]
+<br/>.L32:
+<span id="A0800061e">  0x0800061E:  </span>46B8         MOV        R8, R7
+<br/>.L33:
+<span id="A08000620">  0x08000620:  </span>7860         LDRB       R0, [R4, #1]
+<span id="A08000622">  0x08000622:  </span>0640         LSLS       R0, R0, #25
+<span id="A08000624">  0x08000624:  </span>D520         BPL        .L35                     ; 0x08000668
+<span id="A08000626">  0x08000626:  </span>F8D4 00AC    LDR.W      R0, [R4, #172]
+<span id="A0800062a">  0x0800062A:  </span>EA4F 7030    ROR        R0, R0, #28
+<span id="A0800062e">  0x0800062E:  </span>2805         CMP        R0, #5
+<span id="A08000630">  0x08000630:  </span>F200 82D7    BHI.W      .L111                    ; 0x08000BE2
+<span id="A08000634">  0x08000634:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A08000638">  0x08000638:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000639">  0x08000639:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A0800063a">  0x0800063A:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A0800063b">  0x0800063B:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800063c">  0x0800063C:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800063d">  0x0800063D:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800063e">  0x0800063E:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000642">  0x08000642:  </span>2101         MOVS       R1, #1
+<span id="A08000644">  0x08000644:  </span>F001 FC72    BL         <a href="#">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000648">  0x08000648:  </span>E004         B          .L34                     ; 0x08000654
+<span id="A0800064a">  0x0800064A:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A0800064e">  0x0800064E:  </span>2101         MOVS       R1, #1
+<span id="A08000650">  0x08000650:  </span>F001 FCF4    BL         <a href="#Àh­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L34:
+<span id="A08000654">  0x08000654:  </span>4605         MOV        R5, R0
+<span id="A08000656">  0x08000656:  </span>462F         MOV        R7, R5
+<span id="A08000658">  0x08000658:  </span>B93D         CBNZ       R5, .L36                 ; 0x0800066A
+<span id="A0800065a">  0x0800065A:  </span>6CB0         LDR        R0, [R6, #72]
+<span id="A0800065c">  0x0800065C:  </span>F8D4 10AC    LDR.W      R1, [R4, #172]
+<span id="A08000660">  0x08000660:  </span>F020 40E0    BIC        R0, R0, #0x70000000
+<span id="A08000664">  0x08000664:  </span>4308         ORRS       R0, R1
+<span id="A08000666">  0x08000666:  </span>64B0         STR        R0, [R6, #72]
+<br/>.L35:
+<span id="A08000668">  0x08000668:  </span>4647         MOV        R7, R8
+<br/>.L36:
+<span id="A0800066a">  0x0800066A:  </span>7860         LDRB       R0, [R4, #1]
+<span id="A0800066c">  0x0800066C:  </span>0600         LSLS       R0, R0, #24
+<span id="A0800066e">  0x0800066E:  </span>D51A         BPL        .L39                     ; 0x080006A6
+<span id="A08000670">  0x08000670:  </span>6EE0         LDR        R0, [R4, #108]
+<span id="A08000672">  0x08000672:  </span>B180         CBZ        R0, .L38                 ; 0x08000696
+<span id="A08000674">  0x08000674:  </span>F1B0 5F00    CMP.W      R0, #0x20000000
+<span id="A08000678">  0x08000678:  </span>D007         BEQ        .L37                     ; 0x0800068A
+<span id="A0800067a">  0x0800067A:  </span>F1B0 5F80    CMP.W      R0, #0x10000000
+<span id="A0800067e">  0x0800067E:  </span>D122         BNE        .L41                     ; 0x080006C6
+<span id="A08000680">  0x08000680:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A08000682">  0x08000682:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A08000686">  0x08000686:  </span>61F0         STR        R0, [R6, #28]
+<span id="A08000688">  0x08000688:  </span>E005         B          .L38                     ; 0x08000696
+<br/>.L37:
+<span id="A0800068a">  0x0800068A:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A0800068e">  0x0800068E:  </span>2101         MOVS       R1, #1
+<span id="A08000690">  0x08000690:  </span>F001 FC4C    BL         <a href="#Àh­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000694">  0x08000694:  </span>4605         MOV        R5, R0
+<br/>.L38:
+<span id="A08000696">  0x08000696:  </span>46A8         MOV        R8, R5
+<span id="A08000698">  0x08000698:  </span>B935         CBNZ       R5, .L40                 ; 0x080006A8
+<span id="A0800069a">  0x0800069A:  </span>6C30         LDR        R0, [R6, #64]
+<span id="A0800069c">  0x0800069C:  </span>6EE1         LDR        R1, [R4, #108]
+<span id="A0800069e">  0x0800069E:  </span>F020 5040    BIC        R0, R0, #0x30000000
+<span id="A080006a2">  0x080006A2:  </span>4308         ORRS       R0, R1
+<span id="A080006a4">  0x080006A4:  </span>6430         STR        R0, [R6, #64]
+<br/>.L39:
+<span id="A080006a6">  0x080006A6:  </span>46B8         MOV        R8, R7
+<br/>.L40:
+<span id="A080006a8">  0x080006A8:  </span>78E0         LDRB       R0, [R4, #3]
+<span id="A080006aa">  0x080006AA:  </span>07C0         LSLS       R0, R0, #31
+<span id="A080006ac">  0x080006AC:  </span>D01C         BEQ        .L43                     ; 0x080006E8
+<span id="A080006ae">  0x080006AE:  </span>6CA0         LDR        R0, [R4, #72]
+<span id="A080006b0">  0x080006B0:  </span>2803         CMP        R0, #3
+<span id="A080006b2">  0x080006B2:  </span>D84B         BHI        .L50                     ; 0x0800074C
+<span id="A080006b4">  0x080006B4:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A080006b8">  0x080006B8:  </span>10           DC.B       0x10                     ; '\x10'
+<span id="A080006b9">  0x080006B9:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A080006ba">  0x080006BA:  </span>0A           DC.B       0x0A                     ; '\n'
+<span id="A080006bb">  0x080006BB:  </span>10           DC.B       0x10                     ; '\x10'
+<span id="A080006bc">  0x080006BC:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A080006be">  0x080006BE:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A080006c2">  0x080006C2:  </span>61F0         STR        R0, [R6, #28]
+<span id="A080006c4">  0x080006C4:  </span>E008         B          .L42                     ; 0x080006D8
+<br/>.L41:
+<span id="A080006c6">  0x080006C6:  </span>2501         MOVS       R5, #1
+<span id="A080006c8">  0x080006C8:  </span>46A8         MOV        R8, R5
+<span id="A080006ca">  0x080006CA:  </span>E7ED         B          .L40                     ; 0x080006A8
+<span id="A080006cc">  0x080006CC:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A080006d0">  0x080006D0:  </span>2102         MOVS       R1, #2
+<span id="A080006d2">  0x080006D2:  </span>F001 FC2B    BL         <a href="#0b­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A080006d6">  0x080006D6:  </span>4605         MOV        R5, R0
+<br/>.L42:
+<span id="A080006d8">  0x080006D8:  </span>4629         MOV        R1, R5
+<span id="A080006da">  0x080006DA:  </span>B935         CBNZ       R5, .L44                 ; 0x080006EA
+<span id="A080006dc">  0x080006DC:  </span>6BF0         LDR        R0, [R6, #60]
+<span id="A080006de">  0x080006DE:  </span>6CA1         LDR        R1, [R4, #72]
+<span id="A080006e0">  0x080006E0:  </span>F020 0003    BIC        R0, R0, #3
+<span id="A080006e4">  0x080006E4:  </span>4308         ORRS       R0, R1
+<span id="A080006e6">  0x080006E6:  </span>63F0         STR        R0, [R6, #60]
+<br/>.L43:
+<span id="A080006e8">  0x080006E8:  </span>4641         MOV        R1, R8
+<br/>.L44:
+<span id="A080006ea">  0x080006EA:  </span>E9D4 0200    LDRD       R0, R2, [R4]
+<span id="A080006ee">  0x080006EE:  </span>0242         LSLS       R2, R0, #9
+<span id="A080006f0">  0x080006F0:  </span>D401         BMI        .L46                     ; 0x080006F6
+<br/>.L45:
+<span id="A080006f2">  0x080006F2:  </span>4688         MOV        R8, R1
+<span id="A080006f4">  0x080006F4:  </span>E017         B          .L49                     ; 0x08000726
+<br/>.L46:
+<span id="A080006f6">  0x080006F6:  </span>F8D6 23F0    LDR.W      R2, [R6, #0x03F0]
+<span id="A080006fa">  0x080006FA:  </span>F442 7280    ORR        R2, R2, #0x0100
+<span id="A080006fe">  0x080006FE:  </span>F8C6 23F0    STR.W      R2, [R6, #0x03F0]
+<span id="A08000702">  0x08000702:  </span>F240 1224    MOVW       R2, #0x0124              ; 0x30000124 = uwTick
+<span id="A08000706">  0x08000706:  </span>F2C3 0200    MOVT       R2, #0x3000              ; 0x30000124 = uwTick
+<span id="A0800070a">  0x0800070A:  </span>6813         LDR        R3, [R2]
+<br/>.L47:
+<span id="A0800070c">  0x0800070C:  </span>F8D6 73F0    LDR.W      R7, [R6, #0x03F0]
+<span id="A08000710">  0x08000710:  </span>05FF         LSLS       R7, R7, #23
+<span id="A08000712">  0x08000712:  </span>D406         BMI        .L48                     ; 0x08000722
+<span id="A08000714">  0x08000714:  </span>6817         LDR        R7, [R2]
+<span id="A08000716">  0x08000716:  </span>1AFF         SUBS       R7, R7, R3
+<span id="A08000718">  0x08000718:  </span>2F64         CMP        R7, #100
+<span id="A0800071a">  0x0800071A:  </span>D9F7         BLS        .L47                     ; 0x0800070C
+<span id="A0800071c">  0x0800071C:  </span>2503         MOVS       R5, #3
+<span id="A0800071e">  0x0800071E:  </span>46A8         MOV        R8, R5
+<span id="A08000720">  0x08000720:  </span>E001         B          .L49                     ; 0x08000726
+<br/>.L48:
+<span id="A08000722">  0x08000722:  </span>46A8         MOV        R8, R5
+<span id="A08000724">  0x08000724:  </span>B1AD         CBZ        R5, .L51                 ; 0x08000752
+<br/>.L49:
+<span id="A08000726">  0x08000726:  </span>07C0         LSLS       R0, R0, #31
+<span id="A08000728">  0x08000728:  </span>D062         BEQ        .L56                     ; 0x080007F0
+<span id="A0800072a">  0x0800072A:  </span>6FA0         LDR        R0, [R4, #120]
+<span id="A0800072c">  0x0800072C:  </span>EA4F 00F0    ROR        R0, R0, #3
+<span id="A08000730">  0x08000730:  </span>2805         CMP        R0, #5
+<span id="A08000732">  0x08000732:  </span>F200 8259    BHI.W      .L112                    ; 0x08000BE8
+<span id="A08000736">  0x08000736:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A0800073a">  0x0800073A:  </span>53           DC.B       0x53                     ; 'S'
+<span id="A0800073b">  0x0800073B:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A0800073c">  0x0800073C:  </span>4D           DC.B       0x4D                     ; 'M'
+<span id="A0800073d">  0x0800073D:  </span>53           DC.B       0x53                     ; 'S'
+<span id="A0800073e">  0x0800073E:  </span>53           DC.B       0x53                     ; 'S'
+<span id="A0800073f">  0x0800073F:  </span>53           DC.B       0x53                     ; 'S'
+<span id="A08000740">  0x08000740:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000744">  0x08000744:  </span>2101         MOVS       R1, #1
+<span id="A08000746">  0x08000746:  </span>F001 FBF1    BL         <a href="#à`­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A0800074a">  0x0800074A:  </span>E048         B          .L55                     ; 0x080007DE
+<br/>.L50:
+<span id="A0800074c">  0x0800074C:  </span>2501         MOVS       R5, #1
+<span id="A0800074e">  0x0800074E:  </span>2101         MOVS       R1, #1
+<span id="A08000750">  0x08000750:  </span>E7CB         B          .L44                     ; 0x080006EA
+<br/>.L51:
+<span id="A08000752">  0x08000752:  </span>6E33         LDR        R3, [R6, #96]
+<span id="A08000754">  0x08000754:  </span>F8D4 C0B0    LDR.W      R12, [R4, #176]
+<span id="A08000758">  0x08000758:  </span>EA83 030C    EOR.W      R3, R3, R12
+<span id="A0800075c">  0x0800075C:  </span>F413 7F40    TST        R3, #0x0300
+<span id="A08000760">  0x08000760:  </span>D00B         BEQ        .L52                     ; 0x0800077A
+<span id="A08000762">  0x08000762:  </span>6E33         LDR        R3, [R6, #96]
+<span id="A08000764">  0x08000764:  </span>6E37         LDR        R7, [R6, #96]
+<span id="A08000766">  0x08000766:  </span>F447 3780    ORR        R7, R7, #0x010000
+<span id="A0800076a">  0x0800076A:  </span>6637         STR        R7, [R6, #96]
+<span id="A0800076c">  0x0800076C:  </span>6E37         LDR        R7, [R6, #96]
+<span id="A0800076e">  0x0800076E:  </span>F423 7340    BIC        R3, R3, #0x0300
+<span id="A08000772">  0x08000772:  </span>F427 3780    BIC        R7, R7, #0x010000
+<span id="A08000776">  0x08000776:  </span>6637         STR        R7, [R6, #96]
+<span id="A08000778">  0x08000778:  </span>6633         STR        R3, [R6, #96]
+<br/>.L52:
+<span id="A0800077a">  0x0800077A:  </span>F5BC 7F80    CMP.W      R12, #0x0100
+<span id="A0800077e">  0x0800077E:  </span>D111         BNE        .L54                     ; 0x080007A4
+<span id="A08000780">  0x08000780:  </span>6817         LDR        R7, [R2]
+<span id="A08000782">  0x08000782:  </span>F241 3388    MOVW       R3, #0x1388
+<span id="A08000786">  0x08000786:  </span>2503         MOVS       R5, #3
+<br/>.L53:
+<span id="A08000788">  0x08000788:  </span>F8D6 8060    LDR.W      R8, [R6, #96]
+<span id="A0800078c">  0x0800078C:  </span>EA5F 7888    LSLS.W     R8, R8, #30
+<span id="A08000790">  0x08000790:  </span>D408         BMI        .L54                     ; 0x080007A4
+<span id="A08000792">  0x08000792:  </span>F8D2 8000    LDR.W      R8, [R2]
+<span id="A08000796">  0x08000796:  </span>EBA8 0807    SUB.W      R8, R8, R7
+<span id="A0800079a">  0x0800079A:  </span>4598         CMP        R8, R3
+<span id="A0800079c">  0x0800079C:  </span>F04F 0803    MOV.W      R8, #3
+<span id="A080007a0">  0x080007A0:  </span>D9F2         BLS        .L53                     ; 0x08000788
+<span id="A080007a2">  0x080007A2:  </span>E7C0         B          .L49                     ; 0x08000726
+<br/>.L54:
+<span id="A080007a4">  0x080007A4:  </span>6833         LDR        R3, [R6]
+<span id="A080007a6">  0x080007A6:  </span>F64F 77CF    MOVW       R7, #0xFFCF
+<span id="A080007aa">  0x080007AA:  </span>F40C 7240    AND        R2, R12, #0x0300
+<span id="A080007ae">  0x080007AE:  </span>F423 537C    BIC        R3, R3, #0x3F00
+<span id="A080007b2">  0x080007B2:  </span>F2C0 07FF    MOVT       R7, #255
+<span id="A080007b6">  0x080007B6:  </span>EA07 171C    AND.W      R7, R7, R12, LSR #4
+<span id="A080007ba">  0x080007BA:  </span>2500         MOVS       R5, #0
+<span id="A080007bc">  0x080007BC:  </span>F5B2 7F40    CMP.W      R2, #0x0300
+<span id="A080007c0">  0x080007C0:  </span>BF08         IT         EQ
+<span id="A080007c2">  0x080007C2:  </span>433B         ORREQ      R3, R7
+<span id="A080007c4">  0x080007C4:  </span>6033         STR        R3, [R6]
+<span id="A080007c6">  0x080007C6:  </span>F36F 3C1F    BFC        R12, #12, #20
+<span id="A080007ca">  0x080007CA:  </span>6E32         LDR        R2, [R6, #96]
+<span id="A080007cc">  0x080007CC:  </span>EA42 020C    ORR.W      R2, R2, R12
+<span id="A080007d0">  0x080007D0:  </span>6632         STR        R2, [R6, #96]
+<span id="A080007d2">  0x080007D2:  </span>E78E         B          .L45                     ; 0x080006F2
+<span id="A080007d4">  0x080007D4:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A080007d8">  0x080007D8:  </span>2101         MOVS       R1, #1
+<span id="A080007da">  0x080007DA:  </span>F001 FC2F    BL         <a href="#Ð^­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L55:
+<span id="A080007de">  0x080007DE:  </span>4605         MOV        R5, R0
+<span id="A080007e0">  0x080007E0:  </span>462F         MOV        R7, R5
+<span id="A080007e2">  0x080007E2:  </span>B935         CBNZ       R5, .L57                 ; 0x080007F2
+<span id="A080007e4">  0x080007E4:  </span>6C70         LDR        R0, [R6, #68]
+<span id="A080007e6">  0x080007E6:  </span>6FA1         LDR        R1, [R4, #120]
+<span id="A080007e8">  0x080007E8:  </span>F020 0038    BIC        R0, R0, #56
+<span id="A080007ec">  0x080007EC:  </span>4308         ORRS       R0, R1
+<span id="A080007ee">  0x080007EE:  </span>6470         STR        R0, [R6, #68]
+<br/>.L56:
+<span id="A080007f0">  0x080007F0:  </span>4647         MOV        R7, R8
+<br/>.L57:
+<span id="A080007f2">  0x080007F2:  </span>7820         LDRB       R0, [R4]
+<span id="A080007f4">  0x080007F4:  </span>0780         LSLS       R0, R0, #30
+<span id="A080007f6">  0x080007F6:  </span>D51C         BPL        .L59                     ; 0x08000832
+<span id="A080007f8">  0x080007F8:  </span>6F60         LDR        R0, [R4, #116]
+<span id="A080007fa">  0x080007FA:  </span>2805         CMP        R0, #5
+<span id="A080007fc">  0x080007FC:  </span>F200 81F7    BHI.W      .L113                    ; 0x08000BEE
+<span id="A08000800">  0x08000800:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A08000804">  0x08000804:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000805">  0x08000805:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A08000806">  0x08000806:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A08000807">  0x08000807:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000808">  0x08000808:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000809">  0x08000809:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800080a">  0x0800080A:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A0800080e">  0x0800080E:  </span>2101         MOVS       R1, #1
+<span id="A08000810">  0x08000810:  </span>F001 FB8C    BL         <a href="#0b­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000814">  0x08000814:  </span>E004         B          .L58                     ; 0x08000820
+<span id="A08000816">  0x08000816:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A0800081a">  0x0800081A:  </span>2101         MOVS       R1, #1
+<span id="A0800081c">  0x0800081C:  </span>F001 FC0E    BL         <a href="#Ð^­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L58:
+<span id="A08000820">  0x08000820:  </span>4605         MOV        R5, R0
+<span id="A08000822">  0x08000822:  </span>46A8         MOV        R8, R5
+<span id="A08000824">  0x08000824:  </span>B935         CBNZ       R5, .L60                 ; 0x08000834
+<span id="A08000826">  0x08000826:  </span>6C70         LDR        R0, [R6, #68]
+<span id="A08000828">  0x08000828:  </span>6F61         LDR        R1, [R4, #116]
+<span id="A0800082a">  0x0800082A:  </span>F020 0007    BIC        R0, R0, #7
+<span id="A0800082e">  0x0800082E:  </span>4308         ORRS       R0, R1
+<span id="A08000830">  0x08000830:  </span>6470         STR        R0, [R6, #68]
+<br/>.L59:
+<span id="A08000832">  0x08000832:  </span>46B8         MOV        R8, R7
+<br/>.L60:
+<span id="A08000834">  0x08000834:  </span>7820         LDRB       R0, [R4]
+<span id="A08000836">  0x08000836:  </span>0740         LSLS       R0, R0, #29
+<span id="A08000838">  0x08000838:  </span>D51E         BPL        .L62                     ; 0x08000878
+<span id="A0800083a">  0x0800083A:  </span>F8D4 0090    LDR.W      R0, [R4, #144]
+<span id="A0800083e">  0x0800083E:  </span>2805         CMP        R0, #5
+<span id="A08000840">  0x08000840:  </span>F200 81D8    BHI.W      .L114                    ; 0x08000BF4
+<span id="A08000844">  0x08000844:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A08000848">  0x08000848:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000849">  0x08000849:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A0800084a">  0x0800084A:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A0800084b">  0x0800084B:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800084c">  0x0800084C:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800084d">  0x0800084D:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800084e">  0x0800084E:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000852">  0x08000852:  </span>2101         MOVS       R1, #1
+<span id="A08000854">  0x08000854:  </span>F001 FB6A    BL         <a href="# c­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000858">  0x08000858:  </span>E004         B          .L61                     ; 0x08000864
+<span id="A0800085a">  0x0800085A:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A0800085e">  0x0800085E:  </span>2101         MOVS       R1, #1
+<span id="A08000860">  0x08000860:  </span>F001 FBEC    BL         <a href="# f­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L61:
+<span id="A08000864">  0x08000864:  </span>4605         MOV        R5, R0
+<span id="A08000866">  0x08000866:  </span>46A9         MOV        R9, R5
+<span id="A08000868">  0x08000868:  </span>B93D         CBNZ       R5, .L63                 ; 0x0800087A
+<span id="A0800086a">  0x0800086A:  </span>6CB0         LDR        R0, [R6, #72]
+<span id="A0800086c">  0x0800086C:  </span>F8D4 1090    LDR.W      R1, [R4, #144]
+<span id="A08000870">  0x08000870:  </span>F020 0007    BIC        R0, R0, #7
+<span id="A08000874">  0x08000874:  </span>4308         ORRS       R0, R1
+<span id="A08000876">  0x08000876:  </span>64B0         STR        R0, [R6, #72]
+<br/>.L62:
+<span id="A08000878">  0x08000878:  </span>46C1         MOV        R9, R8
+<br/>.L63:
+<span id="A0800087a">  0x0800087A:  </span>7820         LDRB       R0, [R4]
+<span id="A0800087c">  0x0800087C:  </span>0680         LSLS       R0, R0, #26
+<span id="A0800087e">  0x0800087E:  </span>D520         BPL        .L65                     ; 0x080008C2
+<span id="A08000880">  0x08000880:  </span>F8D4 008C    LDR.W      R0, [R4, #140]
+<span id="A08000884">  0x08000884:  </span>EA4F 7030    ROR        R0, R0, #28
+<span id="A08000888">  0x08000888:  </span>2805         CMP        R0, #5
+<span id="A0800088a">  0x0800088A:  </span>F200 81B6    BHI.W      .L115                    ; 0x08000BFA
+<span id="A0800088e">  0x0800088E:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A08000892">  0x08000892:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000893">  0x08000893:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A08000894">  0x08000894:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A08000895">  0x08000895:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000896">  0x08000896:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000897">  0x08000897:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000898">  0x08000898:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A0800089c">  0x0800089C:  </span>2100         MOVS       R1, #0
+<span id="A0800089e">  0x0800089E:  </span>F001 FB45    BL         <a href="#h­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A080008a2">  0x080008A2:  </span>E004         B          .L64                     ; 0x080008AE
+<span id="A080008a4">  0x080008A4:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A080008a8">  0x080008A8:  </span>2102         MOVS       R1, #2
+<span id="A080008aa">  0x080008AA:  </span>F001 FBC7    BL         <a href="#">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L64:
+<span id="A080008ae">  0x080008AE:  </span>4605         MOV        R5, R0
+<span id="A080008b0">  0x080008B0:  </span>462F         MOV        R7, R5
+<span id="A080008b2">  0x080008B2:  </span>B93D         CBNZ       R5, .L66                 ; 0x080008C4
+<span id="A080008b4">  0x080008B4:  </span>6C70         LDR        R0, [R6, #68]
+<span id="A080008b6">  0x080008B6:  </span>F8D4 108C    LDR.W      R1, [R4, #140]
+<span id="A080008ba">  0x080008BA:  </span>F020 40E0    BIC        R0, R0, #0x70000000
+<span id="A080008be">  0x080008BE:  </span>4308         ORRS       R0, R1
+<span id="A080008c0">  0x080008C0:  </span>6470         STR        R0, [R6, #68]
+<br/>.L65:
+<span id="A080008c2">  0x080008C2:  </span>464F         MOV        R7, R9
+<br/>.L66:
+<span id="A080008c4">  0x080008C4:  </span>7820         LDRB       R0, [R4]
+<span id="A080008c6">  0x080008C6:  </span>0640         LSLS       R0, R0, #25
+<span id="A080008c8">  0x080008C8:  </span>D520         BPL        .L68                     ; 0x0800090C
+<span id="A080008ca">  0x080008CA:  </span>F8D4 0098    LDR.W      R0, [R4, #152]
+<span id="A080008ce">  0x080008CE:  </span>EA4F 20B0    ROR        R0, R0, #10
+<span id="A080008d2">  0x080008D2:  </span>2805         CMP        R0, #5
+<span id="A080008d4">  0x080008D4:  </span>F200 8194    BHI.W      .L116                    ; 0x08000C00
+<span id="A080008d8">  0x080008D8:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A080008dc">  0x080008DC:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A080008dd">  0x080008DD:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A080008de">  0x080008DE:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A080008df">  0x080008DF:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A080008e0">  0x080008E0:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A080008e1">  0x080008E1:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A080008e2">  0x080008E2:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A080008e6">  0x080008E6:  </span>2100         MOVS       R1, #0
+<span id="A080008e8">  0x080008E8:  </span>F001 FB20    BL         <a href="#à`­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A080008ec">  0x080008EC:  </span>E004         B          .L67                     ; 0x080008F8
+<span id="A080008ee">  0x080008EE:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A080008f2">  0x080008F2:  </span>2102         MOVS       R1, #2
+<span id="A080008f4">  0x080008F4:  </span>F001 FBA2    BL         <a href="#à`­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L67:
+<span id="A080008f8">  0x080008F8:  </span>4605         MOV        R5, R0
+<span id="A080008fa">  0x080008FA:  </span>46A8         MOV        R8, R5
+<span id="A080008fc">  0x080008FC:  </span>B93D         CBNZ       R5, .L69                 ; 0x0800090E
+<span id="A080008fe">  0x080008FE:  </span>6CB0         LDR        R0, [R6, #72]
+<span id="A08000900">  0x08000900:  </span>F8D4 1098    LDR.W      R1, [R4, #152]
+<span id="A08000904">  0x08000904:  </span>F420 50E0    BIC        R0, R0, #0x1C00
+<span id="A08000908">  0x08000908:  </span>4308         ORRS       R0, R1
+<span id="A0800090a">  0x0800090A:  </span>64B0         STR        R0, [R6, #72]
+<br/>.L68:
+<span id="A0800090c">  0x0800090C:  </span>46B8         MOV        R8, R7
+<br/>.L69:
+<span id="A0800090e">  0x0800090E:  </span>7820         LDRB       R0, [R4]
+<span id="A08000910">  0x08000910:  </span>0600         LSLS       R0, R0, #24
+<span id="A08000912">  0x08000912:  </span>D520         BPL        .L71                     ; 0x08000956
+<span id="A08000914">  0x08000914:  </span>F8D4 009C    LDR.W      R0, [R4, #156]
+<span id="A08000918">  0x08000918:  </span>EA4F 3070    ROR        R0, R0, #13
+<span id="A0800091c">  0x0800091C:  </span>2805         CMP        R0, #5
+<span id="A0800091e">  0x0800091E:  </span>F200 8172    BHI.W      .L117                    ; 0x08000C06
+<span id="A08000922">  0x08000922:  </span>E8DF F000    TBB        [PC, R0]
+<span id="A08000926">  0x08000926:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000927">  0x08000927:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A08000928">  0x08000928:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A08000929">  0x08000929:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800092a">  0x0800092A:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800092b">  0x0800092B:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A0800092c">  0x0800092C:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000930">  0x08000930:  </span>2100         MOVS       R1, #0
+<span id="A08000932">  0x08000932:  </span>F001 FAFB    BL         <a href="#Àh­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000936">  0x08000936:  </span>E004         B          .L70                     ; 0x08000942
+<span id="A08000938">  0x08000938:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A0800093c">  0x0800093C:  </span>2102         MOVS       R1, #2
+<span id="A0800093e">  0x0800093E:  </span>F001 FB7D    BL         <a href="#@d­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L70:
+<span id="A08000942">  0x08000942:  </span>4605         MOV        R5, R0
+<span id="A08000944">  0x08000944:  </span>462F         MOV        R7, R5
+<span id="A08000946">  0x08000946:  </span>B93D         CBNZ       R5, .L72                 ; 0x08000958
+<span id="A08000948">  0x08000948:  </span>6CB0         LDR        R0, [R6, #72]
+<span id="A0800094a">  0x0800094A:  </span>F8D4 109C    LDR.W      R1, [R4, #156]
+<span id="A0800094e">  0x0800094E:  </span>F420 4060    BIC        R0, R0, #0xE000
+<span id="A08000952">  0x08000952:  </span>4308         ORRS       R0, R1
+<span id="A08000954">  0x08000954:  </span>64B0         STR        R0, [R6, #72]
+<br/>.L71:
+<span id="A08000956">  0x08000956:  </span>4647         MOV        R7, R8
+<br/>.L72:
+<span id="A08000958">  0x08000958:  </span>E9D4 0100    LDRD       R0, R1, [R4]
+<span id="A0800095c">  0x0800095C:  </span>0701         LSLS       R1, R0, #28
+<span id="A0800095e">  0x0800095E:  </span>D515         BPL        .L74                     ; 0x0800098C
+<span id="A08000960">  0x08000960:  </span>F8D4 0080    LDR.W      R0, [R4, #128]
+<span id="A08000964">  0x08000964:  </span>F5B0 5F80    CMP.W      R0, #0x1000
+<span id="A08000968">  0x08000968:  </span>D109         BNE        .L73                     ; 0x0800097E
+<span id="A0800096a">  0x0800096A:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A0800096e">  0x0800096E:  </span>2102         MOVS       R1, #2
+<span id="A08000970">  0x08000970:  </span>F001 FB64    BL         <a href="# f­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A08000974">  0x08000974:  </span>2800         CMP        R0, #0
+<span id="A08000976">  0x08000976:  </span>BF18         IT         NE
+<span id="A08000978">  0x08000978:  </span>2701         MOVNE      R7, #1
+<span id="A0800097a">  0x0800097A:  </span>F8D4 0080    LDR.W      R0, [R4, #128]
+<br/>.L73:
+<span id="A0800097e">  0x0800097E:  </span>6C71         LDR        R1, [R6, #68]
+<span id="A08000980">  0x08000980:  </span>F421 5140    BIC        R1, R1, #0x3000
+<span id="A08000984">  0x08000984:  </span>4308         ORRS       R0, R1
+<span id="A08000986">  0x08000986:  </span>6470         STR        R0, [R6, #68]
+<span id="A08000988">  0x08000988:  </span>E9D4 0100    LDRD       R0, R1, [R4]
+<br/>.L74:
+<span id="A0800098c">  0x0800098C:  </span>06C1         LSLS       R1, R0, #27
+<span id="A0800098e">  0x0800098E:  </span>D515         BPL        .L76                     ; 0x080009BC
+<span id="A08000990">  0x08000990:  </span>F8D4 0094    LDR.W      R0, [R4, #148]
+<span id="A08000994">  0x08000994:  </span>F5B0 7F80    CMP.W      R0, #0x0100
+<span id="A08000998">  0x08000998:  </span>D109         BNE        .L75                     ; 0x080009AE
+<span id="A0800099a">  0x0800099A:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A0800099e">  0x0800099E:  </span>2102         MOVS       R1, #2
+<span id="A080009a0">  0x080009A0:  </span>F001 FB4C    BL         <a href="#@d­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A080009a4">  0x080009A4:  </span>2800         CMP        R0, #0
+<span id="A080009a6">  0x080009A6:  </span>BF18         IT         NE
+<span id="A080009a8">  0x080009A8:  </span>2701         MOVNE      R7, #1
+<span id="A080009aa">  0x080009AA:  </span>F8D4 0094    LDR.W      R0, [R4, #148]
+<br/>.L75:
+<span id="A080009ae">  0x080009AE:  </span>6CB1         LDR        R1, [R6, #72]
+<span id="A080009b0">  0x080009B0:  </span>F421 7140    BIC        R1, R1, #0x0300
+<span id="A080009b4">  0x080009B4:  </span>4308         ORRS       R0, R1
+<span id="A080009b6">  0x080009B6:  </span>64B0         STR        R0, [R6, #72]
+<span id="A080009b8">  0x080009B8:  </span>E9D4 0100    LDRD       R0, R1, [R4]
+<br/>.L76:
+<span id="A080009bc">  0x080009BC:  </span>0300         LSLS       R0, R0, #12
+<span id="A080009be">  0x080009BE:  </span>D51F         BPL        .L80                     ; 0x08000A00
+<span id="A080009c0">  0x080009C0:  </span>F8D4 00A0    LDR.W      R0, [R4, #160]
+<span id="A080009c4">  0x080009C4:  </span>F5B0 3F00    CMP.W      R0, #0x020000
+<span id="A080009c8">  0x080009C8:  </span>D011         BEQ        .L79                     ; 0x080009EE
+<span id="A080009ca">  0x080009CA:  </span>F5B0 3F80    CMP.W      R0, #0x010000
+<span id="A080009ce">  0x080009CE:  </span>D008         BEQ        .L77                     ; 0x080009E2
+<span id="A080009d0">  0x080009D0:  </span>2800         CMP        R0, #0
+<span id="A080009d2">  0x080009D2:  </span>F040 80FB    BNE.W      .L107                    ; 0x08000BCC
+<span id="A080009d6">  0x080009D6:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A080009da">  0x080009DA:  </span>2100         MOVS       R1, #0
+<span id="A080009dc">  0x080009DC:  </span>F001 FAA6    BL         <a href="#pg­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A080009e0">  0x080009E0:  </span>E004         B          .L78                     ; 0x080009EC
+<br/>.L77:
+<span id="A080009e2">  0x080009E2:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A080009e6">  0x080009E6:  </span>2102         MOVS       R1, #2
+<span id="A080009e8">  0x080009E8:  </span>F001 FB28    BL         <a href="#^­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<br/>.L78:
+<span id="A080009ec">  0x080009EC:  </span>4605         MOV        R5, R0
+<br/>.L79:
+<span id="A080009ee">  0x080009EE:  </span>46A8         MOV        R8, R5
+<span id="A080009f0">  0x080009F0:  </span>B93D         CBNZ       R5, .L81                 ; 0x08000A02
+<span id="A080009f2">  0x080009F2:  </span>6CB0         LDR        R0, [R6, #72]
+<span id="A080009f4">  0x080009F4:  </span>F8D4 10A0    LDR.W      R1, [R4, #160]
+<span id="A080009f8">  0x080009F8:  </span>F420 3040    BIC        R0, R0, #0x030000
+<span id="A080009fc">  0x080009FC:  </span>4308         ORRS       R0, R1
+<span id="A080009fe">  0x080009FE:  </span>64B0         STR        R0, [R6, #72]
+<br/>.L80:
+<span id="A08000a00">  0x08000A00:  </span>46B8         MOV        R8, R7
+<br/>.L81:
+<span id="A08000a02">  0x08000A02:  </span>78A0         LDRB       R0, [R4, #2]
+<span id="A08000a04">  0x08000A04:  </span>0740         LSLS       R0, R0, #29
+<span id="A08000a06">  0x08000A06:  </span>D51F         BPL        .L84                     ; 0x08000A48
+<span id="A08000a08">  0x08000A08:  </span>F8D4 0084    LDR.W      R0, [R4, #132]
+<span id="A08000a0c">  0x08000A0C:  </span>F5B0 1F40    CMP.W      R0, #0x300000
+<span id="A08000a10">  0x08000A10:  </span>D011         BEQ        .L83                     ; 0x08000A36
+<span id="A08000a12">  0x08000A12:  </span>F5B0 1F00    CMP.W      R0, #0x200000
+<span id="A08000a16">  0x08000A16:  </span>D008         BEQ        .L82                     ; 0x08000A2A
+<span id="A08000a18">  0x08000A18:  </span>F5B0 1F80    CMP.W      R0, #0x100000
+<span id="A08000a1c">  0x08000A1C:  </span>F040 80D9    BNE.W      .L108                    ; 0x08000BD2
+<span id="A08000a20">  0x08000A20:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A08000a22">  0x08000A22:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A08000a26">  0x08000A26:  </span>61F0         STR        R0, [R6, #28]
+<span id="A08000a28">  0x08000A28:  </span>E005         B          .L83                     ; 0x08000A36
+<br/>.L82:
+<span id="A08000a2a">  0x08000A2A:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000a2e">  0x08000A2E:  </span>2101         MOVS       R1, #1
+<span id="A08000a30">  0x08000A30:  </span>F001 FB04    BL         <a href="#à`­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A08000a34">  0x08000A34:  </span>4605         MOV        R5, R0
+<br/>.L83:
+<span id="A08000a36">  0x08000A36:  </span>462F         MOV        R7, R5
+<span id="A08000a38">  0x08000A38:  </span>B93D         CBNZ       R5, .L85                 ; 0x08000A4A
+<span id="A08000a3a">  0x08000A3A:  </span>6C70         LDR        R0, [R6, #68]
+<span id="A08000a3c">  0x08000A3C:  </span>F8D4 1084    LDR.W      R1, [R4, #132]
+<span id="A08000a40">  0x08000A40:  </span>F420 1040    BIC        R0, R0, #0x300000
+<span id="A08000a44">  0x08000A44:  </span>4308         ORRS       R0, R1
+<span id="A08000a46">  0x08000A46:  </span>6470         STR        R0, [R6, #68]
+<br/>.L84:
+<span id="A08000a48">  0x08000A48:  </span>4647         MOV        R7, R8
+<br/>.L85:
+<span id="A08000a4a">  0x08000A4A:  </span>78A0         LDRB       R0, [R4, #2]
+<span id="A08000a4c">  0x08000A4C:  </span>07C0         LSLS       R0, R0, #31
+<span id="A08000a4e">  0x08000A4E:  </span>D101         BNE        .L87                     ; 0x08000A54
+<br/>.L86:
+<span id="A08000a50">  0x08000A50:  </span>46B8         MOV        R8, R7
+<span id="A08000a52">  0x08000A52:  </span>E01A         B          .L91                     ; 0x08000A8A
+<br/>.L87:
+<span id="A08000a54">  0x08000A54:  </span>6D20         LDR        R0, [R4, #80]
+<span id="A08000a56">  0x08000A56:  </span>F5B0 3F80    CMP.W      R0, #0x010000
+<span id="A08000a5a">  0x08000A5A:  </span>D005         BEQ        .L88                     ; 0x08000A68
+<span id="A08000a5c">  0x08000A5C:  </span>B998         CBNZ       R0, .L90                 ; 0x08000A86
+<span id="A08000a5e">  0x08000A5E:  </span>69F0         LDR        R0, [R6, #28]
+<span id="A08000a60">  0x08000A60:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A08000a64">  0x08000A64:  </span>61F0         STR        R0, [R6, #28]
+<span id="A08000a66">  0x08000A66:  </span>E005         B          .L89                     ; 0x08000A74
+<br/>.L88:
+<span id="A08000a68">  0x08000A68:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000a6c">  0x08000A6C:  </span>2102         MOVS       R1, #2
+<span id="A08000a6e">  0x08000A6E:  </span>F001 FA5D    BL         <a href="#@^­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000a72">  0x08000A72:  </span>4605         MOV        R5, R0
+<br/>.L89:
+<span id="A08000a74">  0x08000A74:  </span>46A8         MOV        R8, R5
+<span id="A08000a76">  0x08000A76:  </span>B945         CBNZ       R5, .L91                 ; 0x08000A8A
+<span id="A08000a78">  0x08000A78:  </span>6BF0         LDR        R0, [R6, #60]
+<span id="A08000a7a">  0x08000A7A:  </span>6D21         LDR        R1, [R4, #80]
+<span id="A08000a7c">  0x08000A7C:  </span>F420 3080    BIC        R0, R0, #0x010000
+<span id="A08000a80">  0x08000A80:  </span>4308         ORRS       R0, R1
+<span id="A08000a82">  0x08000A82:  </span>63F0         STR        R0, [R6, #60]
+<span id="A08000a84">  0x08000A84:  </span>E7E4         B          .L86                     ; 0x08000A50
+<br/>.L90:
+<span id="A08000a86">  0x08000A86:  </span>2501         MOVS       R5, #1
+<span id="A08000a88">  0x08000A88:  </span>46A8         MOV        R8, R5
+<br/>.L91:
+<span id="A08000a8a">  0x08000A8A:  </span>E9D4 1000    LDRD       R1, R0, [R4]
+<span id="A08000a8e">  0x08000A8E:  </span>008A         LSLS       R2, R1, #2
+<span id="A08000a90">  0x08000A90:  </span>D50A         BPL        .L92                     ; 0x08000AA8
+<span id="A08000a92">  0x08000A92:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000a96">  0x08000A96:  </span>2102         MOVS       R1, #2
+<span id="A08000a98">  0x08000A98:  </span>F001 FAD0    BL         <a href="#°c­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A08000a9c">  0x08000A9C:  </span>2800         CMP        R0, #0
+<span id="A08000a9e">  0x08000A9E:  </span>BF18         IT         NE
+<span id="A08000aa0">  0x08000AA0:  </span>F04F 0801    MOVNE.W    R8, #1
+<span id="A08000aa4">  0x08000AA4:  </span>E9D4 1000    LDRD       R1, R0, [R4]
+<br/>.L92:
+<span id="A08000aa8">  0x08000AA8:  </span>038A         LSLS       R2, R1, #14
+<span id="A08000aaa">  0x08000AAA:  </span>D516         BPL        .L94                     ; 0x08000ADA
+<span id="A08000aac">  0x08000AAC:  </span>6FE2         LDR        R2, [R4, #124]
+<span id="A08000aae">  0x08000AAE:  </span>F06F 0301    MVN        R3, #1
+<span id="A08000ab2">  0x08000AB2:  </span>EB03 2332    ADD.W      R3, R3, R2, ROR #8
+<span id="A08000ab6">  0x08000AB6:  </span>2B02         CMP        R3, #2
+<span id="A08000ab8">  0x08000AB8:  </span>D309         BCC        .L93                     ; 0x08000ACE
+<span id="A08000aba">  0x08000ABA:  </span>EA4F 2332    ROR        R3, R2, #8
+<span id="A08000abe">  0x08000ABE:  </span>B133         CBZ        R3, .L93                 ; 0x08000ACE
+<span id="A08000ac0">  0x08000AC0:  </span>2B01         CMP        R3, #1
+<span id="A08000ac2">  0x08000AC2:  </span>F040 8089    BNE.W      .L109                    ; 0x08000BD8
+<span id="A08000ac6">  0x08000AC6:  </span>69F3         LDR        R3, [R6, #28]
+<span id="A08000ac8">  0x08000AC8:  </span>F443 3300    ORR        R3, R3, #0x020000
+<span id="A08000acc">  0x08000ACC:  </span>61F3         STR        R3, [R6, #28]
+<br/>.L93:
+<span id="A08000ace">  0x08000ACE:  </span>B92D         CBNZ       R5, .L95                 ; 0x08000ADC
+<span id="A08000ad0">  0x08000AD0:  </span>6C73         LDR        R3, [R6, #68]
+<span id="A08000ad2">  0x08000AD2:  </span>F423 7340    BIC        R3, R3, #0x0300
+<span id="A08000ad6">  0x08000AD6:  </span>431A         ORRS       R2, R3
+<span id="A08000ad8">  0x08000AD8:  </span>6472         STR        R2, [R6, #68]
+<br/>.L94:
+<span id="A08000ada">  0x08000ADA:  </span>4645         MOV        R5, R8
+<br/>.L95:
+<span id="A08000adc">  0x08000ADC:  </span>02CA         LSLS       R2, R1, #11
+<span id="A08000ade">  0x08000ADE:  </span>D505         BPL        .L96                     ; 0x08000AEC
+<span id="A08000ae0">  0x08000AE0:  </span>6C32         LDR        R2, [R6, #64]
+<span id="A08000ae2">  0x08000AE2:  </span>6F23         LDR        R3, [R4, #112]
+<span id="A08000ae4">  0x08000AE4:  </span>F022 4200    BIC        R2, R2, #0x80000000
+<span id="A08000ae8">  0x08000AE8:  </span>431A         ORRS       R2, R3
+<span id="A08000aea">  0x08000AEA:  </span>6432         STR        R2, [R6, #64]
+<br/>.L96:
+<span id="A08000aec">  0x08000AEC:  </span>028A         LSLS       R2, R1, #10
+<span id="A08000aee">  0x08000AEE:  </span>D505         BPL        .L97                     ; 0x08000AFC
+<span id="A08000af0">  0x08000AF0:  </span>6C32         LDR        R2, [R6, #64]
+<span id="A08000af2">  0x08000AF2:  </span>6EA3         LDR        R3, [R4, #104]
+<span id="A08000af4">  0x08000AF4:  </span>F022 7280    BIC        R2, R2, #0x01000000
+<span id="A08000af8">  0x08000AF8:  </span>431A         ORRS       R2, R3
+<span id="A08000afa">  0x08000AFA:  </span>6432         STR        R2, [R6, #64]
+<br/>.L97:
+<span id="A08000afc">  0x08000AFC:  </span>004A         LSLS       R2, R1, #1
+<span id="A08000afe">  0x08000AFE:  </span>D508         BPL        .L98                     ; 0x08000B12
+<span id="A08000b00">  0x08000B00:  </span>6832         LDR        R2, [R6]
+<span id="A08000b02">  0x08000B02:  </span>F422 4200    BIC        R2, R2, #0x8000
+<span id="A08000b06">  0x08000B06:  </span>6032         STR        R2, [R6]
+<span id="A08000b08">  0x08000B08:  </span>F8D4 20B4    LDR.W      R2, [R4, #180]
+<span id="A08000b0c">  0x08000B0C:  </span>6833         LDR        R3, [R6]
+<span id="A08000b0e">  0x08000B0E:  </span>431A         ORRS       R2, R3
+<span id="A08000b10">  0x08000B10:  </span>6032         STR        R2, [R6]
+<br/>.L98:
+<span id="A08000b12">  0x08000B12:  </span>0FCA         LSRS       R2, R1, #31
+<span id="A08000b14">  0x08000B14:  </span>D005         BEQ        .L99                     ; 0x08000B22
+<span id="A08000b16">  0x08000B16:  </span>6BF2         LDR        R2, [R6, #60]
+<span id="A08000b18">  0x08000B18:  </span>6D63         LDR        R3, [R4, #84]
+<span id="A08000b1a">  0x08000B1A:  </span>F022 5240    BIC        R2, R2, #0x30000000
+<span id="A08000b1e">  0x08000B1E:  </span>431A         ORRS       R2, R3
+<span id="A08000b20">  0x08000B20:  </span>63F2         STR        R2, [R6, #60]
+<br/>.L99:
+<span id="A08000b22">  0x08000B22:  </span>0209         LSLS       R1, R1, #8
+<span id="A08000b24">  0x08000B24:  </span>D506         BPL        .L100                    ; 0x08000B34
+<span id="A08000b26">  0x08000B26:  </span>6C71         LDR        R1, [R6, #68]
+<span id="A08000b28">  0x08000B28:  </span>F8D4 2088    LDR.W      R2, [R4, #136]
+<span id="A08000b2c">  0x08000B2C:  </span>F421 0140    BIC        R1, R1, #0xC00000
+<span id="A08000b30">  0x08000B30:  </span>4311         ORRS       R1, R2
+<span id="A08000b32">  0x08000B32:  </span>6471         STR        R1, [R6, #68]
+<br/>.L100:
+<span id="A08000b34">  0x08000B34:  </span>07C1         LSLS       R1, R0, #31
+<span id="A08000b36">  0x08000B36:  </span>D009         BEQ        .L101                    ; 0x08000B4C
+<span id="A08000b38">  0x08000B38:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000b3c">  0x08000B3C:  </span>2100         MOVS       R1, #0
+<span id="A08000b3e">  0x08000B3E:  </span>F001 F9F5    BL         <a href="#">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000b42">  0x08000B42:  </span>2800         CMP        R0, #0
+<span id="A08000b44">  0x08000B44:  </span>BF18         IT         NE
+<span id="A08000b46">  0x08000B46:  </span>4605         MOVNE      R5, R0
+<span id="A08000b48">  0x08000B48:  </span>E9D4 1000    LDRD       R1, R0, [R4]
+<br/>.L101:
+<span id="A08000b4c">  0x08000B4C:  </span>0781         LSLS       R1, R0, #30
+<span id="A08000b4e">  0x08000B4E:  </span>D509         BPL        .L102                    ; 0x08000B64
+<span id="A08000b50">  0x08000B50:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000b54">  0x08000B54:  </span>2101         MOVS       R1, #1
+<span id="A08000b56">  0x08000B56:  </span>F001 F9E9    BL         <a href="#à`­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000b5a">  0x08000B5A:  </span>2800         CMP        R0, #0
+<span id="A08000b5c">  0x08000B5C:  </span>BF18         IT         NE
+<span id="A08000b5e">  0x08000B5E:  </span>4605         MOVNE      R5, R0
+<span id="A08000b60">  0x08000B60:  </span>E9D4 1000    LDRD       R1, R0, [R4]
+<br/>.L102:
+<span id="A08000b64">  0x08000B64:  </span>0741         LSLS       R1, R0, #29
+<span id="A08000b66">  0x08000B66:  </span>D509         BPL        .L103                    ; 0x08000B7C
+<span id="A08000b68">  0x08000B68:  </span>F104 0008    ADD.W      R0, R4, #8
+<span id="A08000b6c">  0x08000B6C:  </span>2102         MOVS       R1, #2
+<span id="A08000b6e">  0x08000B6E:  </span>F001 F9DD    BL         <a href="#h­D">RCCEx_PLL2_Config</a>        ; 0x08001F2C
+<span id="A08000b72">  0x08000B72:  </span>2800         CMP        R0, #0
+<span id="A08000b74">  0x08000B74:  </span>BF18         IT         NE
+<span id="A08000b76">  0x08000B76:  </span>4605         MOVNE      R5, R0
+<span id="A08000b78">  0x08000B78:  </span>E9D4 1000    LDRD       R1, R0, [R4]
+<br/>.L103:
+<span id="A08000b7c">  0x08000B7C:  </span>0701         LSLS       R1, R0, #28
+<span id="A08000b7e">  0x08000B7E:  </span>D509         BPL        .L104                    ; 0x08000B94
+<span id="A08000b80">  0x08000B80:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000b84">  0x08000B84:  </span>2100         MOVS       R1, #0
+<span id="A08000b86">  0x08000B86:  </span>F001 FA59    BL         <a href="#^­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A08000b8a">  0x08000B8A:  </span>2800         CMP        R0, #0
+<span id="A08000b8c">  0x08000B8C:  </span>BF18         IT         NE
+<span id="A08000b8e">  0x08000B8E:  </span>4605         MOVNE      R5, R0
+<span id="A08000b90">  0x08000B90:  </span>E9D4 1000    LDRD       R1, R0, [R4]
+<br/>.L104:
+<span id="A08000b94">  0x08000B94:  </span>06C1         LSLS       R1, R0, #27
+<span id="A08000b96">  0x08000B96:  </span>D509         BPL        .L105                    ; 0x08000BAC
+<span id="A08000b98">  0x08000B98:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000b9c">  0x08000B9C:  </span>2101         MOVS       R1, #1
+<span id="A08000b9e">  0x08000B9E:  </span>F001 FA4D    BL         <a href="#^­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A08000ba2">  0x08000BA2:  </span>2800         CMP        R0, #0
+<span id="A08000ba4">  0x08000BA4:  </span>BF18         IT         NE
+<span id="A08000ba6">  0x08000BA6:  </span>4605         MOVNE      R5, R0
+<span id="A08000ba8">  0x08000BA8:  </span>E9D4 1000    LDRD       R1, R0, [R4]
+<br/>.L105:
+<span id="A08000bac">  0x08000BAC:  </span>0680         LSLS       R0, R0, #26
+<span id="A08000bae">  0x08000BAE:  </span>D507         BPL        .L106                    ; 0x08000BC0
+<span id="A08000bb0">  0x08000BB0:  </span>F104 0028    ADD.W      R0, R4, #40
+<span id="A08000bb4">  0x08000BB4:  </span>2102         MOVS       R1, #2
+<span id="A08000bb6">  0x08000BB6:  </span>F001 FA41    BL         <a href="#pg­D">RCCEx_PLL3_Config</a>        ; 0x0800203C
+<span id="A08000bba">  0x08000BBA:  </span>2800         CMP        R0, #0
+<span id="A08000bbc">  0x08000BBC:  </span>BF18         IT         NE
+<span id="A08000bbe">  0x08000BBE:  </span>2501         MOVNE      R5, #1
+<br/>.L106:
+<span id="A08000bc0">  0x08000BC0:  </span>2D00         CMP        R5, #0
+<span id="A08000bc2">  0x08000BC2:  </span>BF18         IT         NE
+<span id="A08000bc4">  0x08000BC4:  </span>2501         MOVNE      R5, #1
+<span id="A08000bc6">  0x08000BC6:  </span>4628         MOV        R0, R5
+<span id="A08000bc8">  0x08000BC8:  </span>E8BD 83F8    POP.W      {R3-R9, PC}
+<br/>.L107:
+<span id="A08000bcc">  0x08000BCC:  </span>2501         MOVS       R5, #1
+<span id="A08000bce">  0x08000BCE:  </span>46A8         MOV        R8, R5
+<span id="A08000bd0">  0x08000BD0:  </span>E717         B          .L81                     ; 0x08000A02
+<br/>.L108:
+<span id="A08000bd2">  0x08000BD2:  </span>2501         MOVS       R5, #1
+<span id="A08000bd4">  0x08000BD4:  </span>2701         MOVS       R7, #1
+<span id="A08000bd6">  0x08000BD6:  </span>E738         B          .L85                     ; 0x08000A4A
+<br/>.L109:
+<span id="A08000bd8">  0x08000BD8:  </span>2501         MOVS       R5, #1
+<span id="A08000bda">  0x08000BDA:  </span>E77F         B          .L95                     ; 0x08000ADC
+<br/>.L110:
+<span id="A08000bdc">  0x08000BDC:  </span>2501         MOVS       R5, #1
+<span id="A08000bde">  0x08000BDE:  </span>46A8         MOV        R8, R5
+<span id="A08000be0">  0x08000BE0:  </span>E51E         B          .L33                     ; 0x08000620
+<br/>.L111:
+<span id="A08000be2">  0x08000BE2:  </span>2501         MOVS       R5, #1
+<span id="A08000be4">  0x08000BE4:  </span>2701         MOVS       R7, #1
+<span id="A08000be6">  0x08000BE6:  </span>E540         B          .L36                     ; 0x0800066A
+<br/>.L112:
+<span id="A08000be8">  0x08000BE8:  </span>2501         MOVS       R5, #1
+<span id="A08000bea">  0x08000BEA:  </span>2701         MOVS       R7, #1
+<span id="A08000bec">  0x08000BEC:  </span>E601         B          .L57                     ; 0x080007F2
+<br/>.L113:
+<span id="A08000bee">  0x08000BEE:  </span>2501         MOVS       R5, #1
+<span id="A08000bf0">  0x08000BF0:  </span>46A8         MOV        R8, R5
+<span id="A08000bf2">  0x08000BF2:  </span>E61F         B          .L60                     ; 0x08000834
+<br/>.L114:
+<span id="A08000bf4">  0x08000BF4:  </span>2501         MOVS       R5, #1
+<span id="A08000bf6">  0x08000BF6:  </span>46A9         MOV        R9, R5
+<span id="A08000bf8">  0x08000BF8:  </span>E63F         B          .L63                     ; 0x0800087A
+<br/>.L115:
+<span id="A08000bfa">  0x08000BFA:  </span>2501         MOVS       R5, #1
+<span id="A08000bfc">  0x08000BFC:  </span>2701         MOVS       R7, #1
+<span id="A08000bfe">  0x08000BFE:  </span>E661         B          .L66                     ; 0x080008C4
+<br/>.L116:
+<span id="A08000c00">  0x08000C00:  </span>2501         MOVS       R5, #1
+<span id="A08000c02">  0x08000C02:  </span>46A8         MOV        R8, R5
+<span id="A08000c04">  0x08000C04:  </span>E683         B          .L69                     ; 0x0800090E
+<br/>.L117:
+<span id="A08000c06">  0x08000C06:  </span>2501         MOVS       R5, #1
+<span id="A08000c08">  0x08000C08:  </span>2701         MOVS       R7, #1
+<span id="A08000c0a">  0x08000C0A:  </span>E6A5         B          .L72                     ; 0x08000958
+</pre>
 <h2 id="ABSOLUTE LISTING_Section .init._start from SEGGER_THUMB_Startup.o, size=20, align=4">Section .init._start from SEGGER_THUMB_Startup.o, size=20, align=4</h2>
 <pre>
-<br/><span id="þ
-#">_start:</span>
-<span id="A080003d8">  0x080003D8:  </span>4C03         LDR        R4, =0x08000BC0          ; [PC, #12] [0x080003E8] 
+<br/><span id="ÿ
+Ó
+D">_start:</span>
+<span id="A08000c0c">  0x08000C0C:  </span>4C03         LDR        R4, =0x08002334          ; [PC, #12] [0x08000C1C] 
 <br/>.L1:
-<span id="A080003da">  0x080003DA:  </span>6820         LDR        R0, [R4]
-<span id="A080003dc">  0x080003DC:  </span>3404         ADDS       R4, #4
-<span id="A080003de">  0x080003DE:  </span>4780         BLX        R0
-<span id="A080003e0">  0x080003E0:  </span>E7FB         B          .L1                      ; 0x080003DA
-<br/><span id="¼þ
-#">__SEGGER_init_done:</span>
-<span id="Ïþ
-#">__startup_complete:</span>
-<span id="A080003e2">  0x080003E2:  </span>F000 FAF8    BL         <a href="#`íu²i">main</a>                     ; 0x080009D6
-<br/><span id="çþ
-#">exit:</span>
-<span id="A080003e6">  0x080003E6:  </span>E7FE         B          <a href="#`íu²i">exit</a>                     ; 0x080003E6
-<span id="A080003e8">  0x080003E8:  </span>08000BC0     DC.W       0x08000BC0               ; R_ARM_ABS32
+<span id="A08000c0e">  0x08000C0E:  </span>6820         LDR        R0, [R4]
+<span id="A08000c10">  0x08000C10:  </span>3404         ADDS       R4, #4
+<span id="A08000c12">  0x08000C12:  </span>4780         BLX        R0
+<span id="A08000c14">  0x08000C14:  </span>E7FB         B          .L1                      ; 0x08000C0E
+<br/><span id="
+
+Ó
+D">__SEGGER_init_done:</span>
+<span id="/
+Ó
+D">__startup_complete:</span>
+<span id="A08000c16">  0x08000C16:  </span>F000 FA7A    BL         <a href="# ô]oÛ">main</a>                     ; 0x0800110E
+<br/><span id="G
+Ó
+D">exit:</span>
+<span id="A08000c1a">  0x08000C1A:  </span>E7FE         B          <a href="# ô]oÛ">exit</a>                     ; 0x08000C1A
+<span id="A08000c1c">  0x08000C1C:  </span>08002334     DC.W       0x08002334               ; R_ARM_ABS32
 </pre>
-<h2 id="ABSOLUTE LISTING_Section .text.SystemClock_Config() from charger_lto.o, size=794, align=2">Section .text.SystemClock_Config() from charger_lto.o, size=794, align=2</h2>
+<h2 id="ABSOLUTE LISTING_Section .text.libc.__aeabi_memclr from strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=104, align=4">Section .text.libc.__aeabi_memclr from strasmops_arm.o (strops_unaligned_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=104, align=4</h2>
 <pre>
-<br/><span id="w	#">SystemClock_Config():</span>
-<span id="A080003ec">  0x080003EC:  </span>B510         PUSH       {R4, LR}
-<span id="A080003ee">  0x080003EE:  </span>B082         SUB        SP, SP, #8
-<span id="A080003f0">  0x080003F0:  </span>F644 010C    MOVW       R1, #0x480C
-<span id="A080003f4">  0x080003F4:  </span>F6C5 0102    MOVT       R1, #0x5802
-<span id="A080003f8">  0x080003F8:  </span>6808         LDR        R0, [R1]
-<span id="A080003fa">  0x080003FA:  </span>680A         LDR        R2, [R1]
-<span id="A080003fc">  0x080003FC:  </span>0740         LSLS       R0, R0, #29
-<span id="A080003fe">  0x080003FE:  </span>F240 0024    MOVW       R0, #36                  ; 0x30000024 = uwTick
-<span id="A08000402">  0x08000402:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000024 = uwTick
-<span id="A08000406">  0x08000406:  </span>D50D         BPL        .L2                      ; 0x08000424
-<span id="A08000408">  0x08000408:  </span>2302         MOVS       R3, #2
-<span id="A0800040a">  0x0800040A:  </span>F363 0202    BFI        R2, R3, #0, #3
-<span id="A0800040e">  0x0800040E:  </span>600A         STR        R2, [R1]
-<span id="A08000410">  0x08000410:  </span>6802         LDR        R2, [R0]
+<br/><span id="^°
+D">__aeabi_memclr:</span>
+<span id="^°
+D">__aeabi_memclr8:</span>
+<span id="/^°
+D">__aeabi_memclr4:</span>
+<span id="A08000c20">  0x08000C20:  </span>2200         MOVS       R2, #0
+<br/><span id="?^°
+D">__aeabi_memset8:</span>
+<span id="O^°
+D">__aeabi_memset4:</span>
+<span id="_^°
+D">__aeabi_memset:</span>
+<span id="A08000c22">  0x08000C22:  </span>000B         MOVS       R3, R1
+<span id="A08000c24">  0x08000C24:  </span>0011         MOVS       R1, R2
+<span id="A08000c26">  0x08000C26:  </span>001A         MOVS       R2, R3
+<br/><span id="g^°
+D">memset:</span>
+<span id="A08000c28">  0x08000C28:  </span>4684         MOV        R12, R0
+<span id="A08000c2a">  0x08000C2A:  </span>B35A         CBZ        R2, .L7                  ; 0x08000C84
 <br/>.L1:
-<span id="A08000412">  0x08000412:  </span>F851 3C08    LDR        R3, [R1, #-8]
-<span id="A08000416">  0x08000416:  </span>049B         LSLS       R3, R3, #18
-<span id="A08000418">  0x08000418:  </span>D404         BMI        .L2                      ; 0x08000424
-<span id="A0800041a">  0x0800041A:  </span>6803         LDR        R3, [R0]
-<span id="A0800041c">  0x0800041C:  </span>1A9B         SUBS       R3, R3, R2
-<span id="A0800041e">  0x0800041E:  </span>F5B3 7F7A    CMP.W      R3, #0x03E8
-<span id="A08000422">  0x08000422:  </span>D9F6         BLS        .L1                      ; 0x08000412
+<span id="A08000c2c">  0x08000C2C:  </span>0783         LSLS       R3, R0, #30
+<span id="A08000c2e">  0x08000C2E:  </span>D004         BEQ        .L2                      ; 0x08000C3A
+<span id="A08000c30">  0x08000C30:  </span>F800 1B01    STRB       R1, [R0], #1
+<span id="A08000c34">  0x08000C34:  </span>3A01         SUBS       R2, #1
+<span id="A08000c36">  0x08000C36:  </span>D1F9         BNE        .L1                      ; 0x08000C2C
+<span id="A08000c38">  0x08000C38:  </span>E024         B          .L7                      ; 0x08000C84
 <br/>.L2:
-<span id="A08000424">  0x08000424:  </span>2200         MOVS       R2, #0
-<span id="A08000426">  0x08000426:  </span>9201         STR        R2, [SP, #4]
-<span id="A08000428">  0x08000428:  </span>68CA         LDR        R2, [R1, #12]
-<span id="A0800042a">  0x0800042A:  </span>2302         MOVS       R3, #2
-<span id="A0800042c">  0x0800042C:  </span>F363 328F    BFI        R2, R3, #14, #2
-<span id="A08000430">  0x08000430:  </span>60CA         STR        R2, [R1, #12]
-<span id="A08000432">  0x08000432:  </span>68CA         LDR        R2, [R1, #12]
-<span id="A08000434">  0x08000434:  </span>F402 4240    AND        R2, R2, #0xC000
-<span id="A08000438">  0x08000438:  </span>9201         STR        R2, [SP, #4]
-<span id="A0800043a">  0x0800043A:  </span>9A01         LDR        R2, [SP, #4]
+<span id="A08000c3a">  0x08000C3A:  </span>B2C9         UXTB       R1, R1
+<span id="A08000c3c">  0x08000C3C:  </span>EA41 2101    ORR.W      R1, R1, R1, LSL #8
+<span id="A08000c40">  0x08000C40:  </span>EA41 4101    ORR.W      R1, R1, R1, LSL #16
+<span id="A08000c44">  0x08000C44:  </span>2A20         CMP        R2, #32
+<span id="A08000c46">  0x08000C46:  </span>D311         BCC        .L4                      ; 0x08000C6C
+<span id="A08000c48">  0x08000C48:  </span>3A20         SUBS       R2, #32
+<span id="A08000c4a">  0x08000C4A:  </span>E92D 03F0    PUSH.W     {R4-R9}
+<span id="A08000c4e">  0x08000C4E:  </span>460B         MOV        R3, R1
+<span id="A08000c50">  0x08000C50:  </span>460C         MOV        R4, R1
+<span id="A08000c52">  0x08000C52:  </span>460D         MOV        R5, R1
+<span id="A08000c54">  0x08000C54:  </span>460E         MOV        R6, R1
+<span id="A08000c56">  0x08000C56:  </span>460F         MOV        R7, R1
+<span id="A08000c58">  0x08000C58:  </span>4688         MOV        R8, R1
+<span id="A08000c5a">  0x08000C5A:  </span>4689         MOV        R9, R1
 <br/>.L3:
-<span id="A0800043c">  0x0800043C:  </span>68CA         LDR        R2, [R1, #12]
-<span id="A0800043e">  0x0800043E:  </span>0492         LSLS       R2, R2, #18
-<span id="A08000440">  0x08000440:  </span>D5FC         BPL        .L3                      ; 0x0800043C
-<span id="A08000442">  0x08000442:  </span>F244 4400    MOVW       R4, #0x4400
-<span id="A08000446">  0x08000446:  </span>F6C5 0402    MOVT       R4, #0x5802
-<span id="A0800044a">  0x0800044A:  </span>F8D4 1400    LDR.W      R1, [R4, #0x0400]
-<span id="A0800044e">  0x0800044E:  </span>F441 7180    ORR        R1, R1, #0x0100
-<span id="A08000452">  0x08000452:  </span>F8C4 1400    STR.W      R1, [R4, #0x0400]
-<span id="A08000456">  0x08000456:  </span>6F21         LDR        R1, [R4, #112]
-<span id="A08000458">  0x08000458:  </span>F021 0118    BIC        R1, R1, #24
-<span id="A0800045c">  0x0800045C:  </span>6721         STR        R1, [R4, #112]
-<span id="A0800045e">  0x0800045E:  </span>6921         LDR        R1, [R4, #16]
-<span id="A08000460">  0x08000460:  </span>F001 0238    AND        R2, R1, #56
-<span id="A08000464">  0x08000464:  </span>6AA1         LDR        R1, [R4, #40]
-<span id="A08000466">  0x08000466:  </span>2A10         CMP        R2, #16
-<span id="A08000468">  0x08000468:  </span>D007         BEQ        .L4                      ; 0x0800047A
-<span id="A0800046a">  0x0800046A:  </span>2A18         CMP        R2, #24
-<span id="A0800046c">  0x0800046C:  </span>F040 80F4    BNE.W      .L16                     ; 0x08000658
-<span id="A08000470">  0x08000470:  </span>F001 0103    AND        R1, R1, #3
-<span id="A08000474">  0x08000474:  </span>2902         CMP        R1, #2
-<span id="A08000476">  0x08000476:  </span>F040 80EF    BNE.W      .L16                     ; 0x08000658
+<span id="A08000c5c">  0x08000C5C:  </span>E8A0 03FA    STM.W      R0!, {R1, R3-R9}
+<span id="A08000c60">  0x08000C60:  </span>3A20         SUBS       R2, #32
+<span id="A08000c62">  0x08000C62:  </span>D2FB         BCS        .L3                      ; 0x08000C5C
+<span id="A08000c64">  0x08000C64:  </span>E8BD 03F0    POP.W      {R4-R9}
+<span id="A08000c68">  0x08000C68:  </span>3220         ADDS       R2, #32
+<span id="A08000c6a">  0x08000C6A:  </span>D00B         BEQ        .L7                      ; 0x08000C84
 <br/>.L4:
-<span id="A0800047a">  0x0800047A:  </span>6821         LDR        R1, [R4]
+<span id="A08000c6c">  0x08000C6C:  </span>2A04         CMP        R2, #4
+<span id="A08000c6e">  0x08000C6E:  </span>D305         BCC        .L6                      ; 0x08000C7C
 <br/>.L5:
-<span id="A0800047c">  0x0800047C:  </span>F8D4 1400    LDR.W      R1, [R4, #0x0400]
-<span id="A08000480">  0x08000480:  </span>F441 7180    ORR        R1, R1, #0x0100
-<span id="A08000484">  0x08000484:  </span>F8C4 1400    STR.W      R1, [R4, #0x0400]
-<span id="A08000488">  0x08000488:  </span>6801         LDR        R1, [R0]
+<span id="A08000c70">  0x08000C70:  </span>F840 1B04    STR        R1, [R0], #4
+<span id="A08000c74">  0x08000C74:  </span>3A04         SUBS       R2, #4
+<span id="A08000c76">  0x08000C76:  </span>D005         BEQ        .L7                      ; 0x08000C84
+<span id="A08000c78">  0x08000C78:  </span>2A04         CMP        R2, #4
+<span id="A08000c7a">  0x08000C7A:  </span>D2F9         BCS        .L5                      ; 0x08000C70
 <br/>.L6:
-<span id="A0800048a">  0x0800048A:  </span>F8D4 2400    LDR.W      R2, [R4, #0x0400]
-<span id="A0800048e">  0x0800048E:  </span>05D2         LSLS       R2, R2, #23
-<span id="A08000490">  0x08000490:  </span>D404         BMI        .L7                      ; 0x0800049C
-<span id="A08000492">  0x08000492:  </span>6802         LDR        R2, [R0]
-<span id="A08000494">  0x08000494:  </span>1A52         SUBS       R2, R2, R1
-<span id="A08000496">  0x08000496:  </span>2A64         CMP        R2, #100
-<span id="A08000498">  0x08000498:  </span>D9F7         BLS        .L6                      ; 0x0800048A
-<span id="A0800049a">  0x0800049A:  </span>E132         B          .L22                     ; 0x08000702
+<span id="A08000c7c">  0x08000C7C:  </span>F800 1B01    STRB       R1, [R0], #1
+<span id="A08000c80">  0x08000C80:  </span>3A01         SUBS       R2, #1
+<span id="A08000c82">  0x08000C82:  </span>D1FB         BNE        .L6                      ; 0x08000C7C
 <br/>.L7:
-<span id="A0800049c">  0x0800049C:  </span>6F21         LDR        R1, [R4, #112]
-<span id="A0800049e">  0x0800049E:  </span>F241 3288    MOVW       R2, #0x1388
-<span id="A080004a2">  0x080004A2:  </span>F041 0101    ORR        R1, R1, #1
-<span id="A080004a6">  0x080004A6:  </span>6721         STR        R1, [R4, #112]
-<span id="A080004a8">  0x080004A8:  </span>6801         LDR        R1, [R0]
+<span id="A08000c84">  0x08000C84:  </span>4660         MOV        R0, R12
+<span id="A08000c86">  0x08000C86:  </span>4770         BX         LR
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.HAL_SPI_Init from charger_lto.o, size=1158, align=4">Section .text.HAL_SPI_Init from charger_lto.o, size=1158, align=4</h2>
+<pre>
+<br/><span id="wÑ
+D">HAL_SPI_Init:</span>
+<span id="A08000c88">  0x08000C88:  </span>E92D 4FF0    PUSH.W     {R4-R11, LR}
+<span id="A08000c8c">  0x08000C8C:  </span>B0B1         SUB        SP, SP, #196
+<span id="A08000c8e">  0x08000C8E:  </span>F240 0400    MOVW       R4, #0                   ; 0x30000000 = hspi4
+<span id="A08000c92">  0x08000C92:  </span>F643 0100    MOVW       R1, #0x3800
+<span id="A08000c96">  0x08000C96:  </span>F2C3 0400    MOVT       R4, #0x3000              ; 0x30000000 = hspi4
+<span id="A08000c9a">  0x08000C9A:  </span>2000         MOVS       R0, #0
+<span id="A08000c9c">  0x08000C9C:  </span>F2C4 0100    MOVT       R1, #0x4000
+<span id="A08000ca0">  0x08000CA0:  </span>6827         LDR        R7, [R4]
+<span id="A08000ca2">  0x08000CA2:  </span>62A0         STR        R0, [R4, #40]
+<span id="A08000ca4">  0x08000CA4:  </span>F501 4078    ADD.W      R0, R1, #0xF800
+<span id="A08000ca8">  0x08000CA8:  </span>428F         CMP        R7, R1
+<span id="A08000caa">  0x08000CAA:  </span>F5A0 4574    SUB.W      R5, R0, #0xF400
+<span id="A08000cae">  0x08000CAE:  </span>D004         BEQ        .L1                      ; 0x08000CBA
+<span id="A08000cb0">  0x08000CB0:  </span>42AF         CMP        R7, R5
+<span id="A08000cb2">  0x08000CB2:  </span>BF18         IT         NE
+<span id="A08000cb4">  0x08000CB4:  </span>4287         CMPNE      R7, R0
+<span id="A08000cb6">  0x08000CB6:  </span>F040 80D5    BNE.W      .L8                      ; 0x08000E64
+<br/>.L1:
+<span id="A08000cba">  0x08000CBA:  </span>6BE2         LDR        R2, [R4, #60]
+<span id="A08000cbc">  0x08000CBC:  </span>2601         MOVS       R6, #1
+<span id="A08000cbe">  0x08000CBE:  </span>68E3         LDR        R3, [R4, #12]
+<span id="A08000cc0">  0x08000CC0:  </span>3308         ADDS       R3, #8
+<span id="A08000cc2">  0x08000CC2:  </span>EB06 1252    ADD.W      R2, R6, R2, LSR #5
+<span id="A08000cc6">  0x08000CC6:  </span>08DB         LSRS       R3, R3, #3
+<span id="A08000cc8">  0x08000CC8:  </span>428F         CMP        R7, R1
+<span id="A08000cca">  0x08000CCA:  </span>FB03 F202    MUL        R2, R3, R2
+<span id="A08000cce">  0x08000CCE:  </span>BF18         IT         NE
+<span id="A08000cd0">  0x08000CD0:  </span>4287         CMPNE      R7, R0
+<span id="A08000cd2">  0x08000CD2:  </span>F040 80BB    BNE.W      .L7                      ; 0x08000E4C
+<br/>.L2:
+<span id="A08000cd6">  0x08000CD6:  </span>2A10         CMP        R2, #16
+<span id="A08000cd8">  0x08000CD8:  </span>F200 80C8    BHI.W      .L9                      ; 0x08000E6C
+<br/>.L3:
+<span id="A08000cdc">  0x08000CDC:  </span>F894 0081    LDRB.W     R0, [R4, #129]
+<span id="A08000ce0">  0x08000CE0:  </span>2800         CMP        R0, #0
+<span id="A08000ce2">  0x08000CE2:  </span>F040 8181    BNE.W      .L26                     ; 0x08000FE8
+<span id="A08000ce6">  0x08000CE6:  </span>A80C         ADD        R0, SP, #48
+<span id="A08000ce8">  0x08000CE8:  </span>2190         MOVS       R1, #144
+<span id="A08000cea">  0x08000CEA:  </span>2600         MOVS       R6, #0
+<span id="A08000cec">  0x08000CEC:  </span>F884 6080    STRB.W     R6, [R4, #128]
+<span id="A08000cf0">  0x08000CF0:  </span>F7FF FF96    BL         <a href="# ô]oÛ">__aeabi_memclr</a>           ; 0x08000C20
+<span id="A08000cf4">  0x08000CF4:  </span>F505 4078    ADD.W      R0, R5, #0xF800
+<span id="A08000cf8">  0x08000CF8:  </span>4287         CMP        R7, R0
+<span id="A08000cfa">  0x08000CFA:  </span>F040 8175    BNE.W      .L26                     ; 0x08000FE8
+<span id="A08000cfe">  0x08000CFE:  </span>F44F 5000    MOV.W      R0, #0x2000
+<span id="A08000d02">  0x08000D02:  </span>2102         MOVS       R1, #2
+<span id="A08000d04">  0x08000D04:  </span>E9CD 0602    STRD       R0, R6, [SP, #8]
+<span id="A08000d08">  0x08000D08:  </span>2003         MOVS       R0, #3
+<span id="A08000d0a">  0x08000D0A:  </span>9004         STR        R0, [SP, #16]
+<span id="A08000d0c">  0x08000D0C:  </span>2028         MOVS       R0, #40
+<span id="A08000d0e">  0x08000D0E:  </span>960B         STR        R6, [SP, #44]
+<span id="A08000d10">  0x08000D10:  </span>E9CD 0105    STRD       R0, R1, [SP, #20]
+<span id="A08000d14">  0x08000D14:  </span>200B         MOVS       R0, #11
+<span id="A08000d16">  0x08000D16:  </span>E9CD 0107    STRD       R0, R1, [SP, #28]
+<span id="A08000d1a">  0x08000D1A:  </span>20C0         MOVS       R0, #192
+<span id="A08000d1c">  0x08000D1C:  </span>E9CD 0609    STRD       R0, R6, [SP, #36]
+<span id="A08000d20">  0x08000D20:  </span>F44F 3080    MOV.W      R0, #0x010000
+<span id="A08000d24">  0x08000D24:  </span>901A         STR        R0, [SP, #104]
+<span id="A08000d26">  0x08000D26:  </span>A802         ADD        R0, SP, #8
+<span id="A08000d28">  0x08000D28:  </span>F7FF FB56    BL         <a href="#@^­D">HAL_RCCEx_PeriphCLKConfig</a> ; 0x080003D8
+<span id="A08000d2c">  0x08000D2C:  </span>2800         CMP        R0, #0
+<span id="A08000d2e">  0x08000D2E:  </span>F040 81ED    BNE.W      .L40                     ; 0x0800110C
+<span id="A08000d32">  0x08000D32:  </span>F244 41E0    MOVW       R1, #0x44E0
+<span id="A08000d36">  0x08000D36:  </span>F241 0C00    MOVW       R12, #0x1000
+<span id="A08000d3a">  0x08000D3A:  </span>F6C5 0102    MOVT       R1, #0x5802
+<span id="A08000d3e">  0x08000D3E:  </span>F6C5 0C02    MOVT       R12, #0x5802
+<span id="A08000d42">  0x08000D42:  </span>F04F 0A01    MOV.W      R10, #1
+<span id="A08000d46">  0x08000D46:  </span>F04F 0E0F    MOV.W      LR, #15
+<span id="A08000d4a">  0x08000D4A:  </span>6908         LDR        R0, [R1, #16]
+<span id="A08000d4c">  0x08000D4C:  </span>F04F 0B05    MOV.W      R11, #5
+<span id="A08000d50">  0x08000D50:  </span>F440 5000    ORR        R0, R0, #0x2000
+<span id="A08000d54">  0x08000D54:  </span>6108         STR        R0, [R1, #16]
+<span id="A08000d56">  0x08000D56:  </span>6908         LDR        R0, [R1, #16]
+<span id="A08000d58">  0x08000D58:  </span>2300         MOVS       R3, #0
+<span id="A08000d5a">  0x08000D5A:  </span>F400 5000    AND        R0, R0, #0x2000
+<span id="A08000d5e">  0x08000D5E:  </span>9001         STR        R0, [SP, #4]
+<span id="A08000d60">  0x08000D60:  </span>9801         LDR        R0, [SP, #4]
+<span id="A08000d62">  0x08000D62:  </span>6808         LDR        R0, [R1]
+<span id="A08000d64">  0x08000D64:  </span>F040 0010    ORR        R0, R0, #16
+<span id="A08000d68">  0x08000D68:  </span>6008         STR        R0, [R1]
+<span id="A08000d6a">  0x08000D6A:  </span>6809         LDR        R1, [R1]
+<span id="A08000d6c">  0x08000D6C:  </span>F001 0110    AND        R1, R1, #16
+<span id="A08000d70">  0x08000D70:  </span>9101         STR        R1, [SP, #4]
+<span id="A08000d72">  0x08000D72:  </span>9901         LDR        R1, [SP, #4]
+<span id="A08000d74">  0x08000D74:  </span>2100         MOVS       R1, #0
+<br/>.L4:
+<span id="A08000d76">  0x08000D76:  </span>FA0A F903    LSL.W      R9, R10, R3
+<span id="A08000d7a">  0x08000D7A:  </span>F419 4FB0    TST        R9, #0x5800
+<span id="A08000d7e">  0x08000D7E:  </span>D02B         BEQ        .L5                      ; 0x08000DD8
+<span id="A08000d80">  0x08000D80:  </span>2003         MOVS       R0, #3
+<span id="A08000d82">  0x08000D82:  </span>F8DC 8008    LDR.W      R8, [R12, #8]
+<span id="A08000d86">  0x08000D86:  </span>FA00 F701    LSL.W      R7, R0, R1
+<span id="A08000d8a">  0x08000D8A:  </span>43C0         MVNS       R0, R0
+<span id="A08000d8c">  0x08000D8C:  </span>EA28 0507    BIC.W      R5, R8, R7
+<span id="A08000d90">  0x08000D90:  </span>F8CC 5008    STR.W      R5, [R12, #8]
+<span id="A08000d94">  0x08000D94:  </span>F8DC 5004    LDR.W      R5, [R12, #4]
+<span id="A08000d98">  0x08000D98:  </span>EA25 0909    BIC.W      R9, R5, R9
+<span id="A08000d9c">  0x08000D9C:  </span>F8CC 9004    STR.W      R9, [R12, #4]
+<span id="A08000da0">  0x08000DA0:  </span>F8DC 900C    LDR.W      R9, [R12, #12]
+<span id="A08000da4">  0x08000DA4:  </span>EA00 0553    AND.W      R5, R0, R3, LSR #1
+<span id="A08000da8">  0x08000DA8:  </span>EA29 0907    BIC.W      R9, R9, R7
+<span id="A08000dac">  0x08000DAC:  </span>4465         ADD        R5, R12
+<span id="A08000dae">  0x08000DAE:  </span>F8CC 900C    STR.W      R9, [R12, #12]
+<span id="A08000db2">  0x08000DB2:  </span>F006 091C    AND        R9, R6, #28
+<span id="A08000db6">  0x08000DB6:  </span>6A2A         LDR        R2, [R5, #32]
+<span id="A08000db8">  0x08000DB8:  </span>FA0E F009    LSL.W      R0, LR, R9
+<span id="A08000dbc">  0x08000DBC:  </span>EA22 0000    BIC.W      R0, R2, R0
+<span id="A08000dc0">  0x08000DC0:  </span>FA0B F209    LSL.W      R2, R11, R9
+<span id="A08000dc4">  0x08000DC4:  </span>4310         ORRS       R0, R2
+<span id="A08000dc6">  0x08000DC6:  </span>6228         STR        R0, [R5, #32]
+<span id="A08000dc8">  0x08000DC8:  </span>F8DC 0000    LDR.W      R0, [R12]
+<span id="A08000dcc">  0x08000DCC:  </span>2202         MOVS       R2, #2
+<span id="A08000dce">  0x08000DCE:  </span>43B8         BICS       R0, R7
+<span id="A08000dd0">  0x08000DD0:  </span>408A         LSLS       R2, R1
+<span id="A08000dd2">  0x08000DD2:  </span>4310         ORRS       R0, R2
+<span id="A08000dd4">  0x08000DD4:  </span>F8CC 0000    STR.W      R0, [R12]
+<br/>.L5:
+<span id="A08000dd8">  0x08000DD8:  </span>3301         ADDS       R3, #1
+<span id="A08000dda">  0x08000DDA:  </span>3604         ADDS       R6, #4
+<span id="A08000ddc">  0x08000DDC:  </span>3102         ADDS       R1, #2
+<span id="A08000dde">  0x08000DDE:  </span>2B0F         CMP        R3, #15
+<span id="A08000de0">  0x08000DE0:  </span>D1C9         BNE        .L4                      ; 0x08000D76
+<span id="A08000de2">  0x08000DE2:  </span>F240 0088    MOVW       R0, #136                 ; 0x30000088 = hdma_spi4_tx
+<span id="A08000de6">  0x08000DE6:  </span>2154         MOVS       R1, #84
+<span id="A08000de8">  0x08000DE8:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000088 = hdma_spi4_tx
+<span id="A08000dec">  0x08000DEC:  </span>2700         MOVS       R7, #0
+<span id="A08000dee">  0x08000DEE:  </span>F240 1224    MOVW       R2, #0x0124              ; 0x30000124 = uwTick
+<span id="A08000df2">  0x08000DF2:  </span>2508         MOVS       R5, #8
+<span id="A08000df4">  0x08000DF4:  </span>6041         STR        R1, [R0, #4]
+<span id="A08000df6">  0x08000DF6:  </span>2140         MOVS       R1, #64
+<span id="A08000df8">  0x08000DF8:  </span>E9C0 1702    STRD       R1, R7, [R0, #8]
+<span id="A08000dfc">  0x08000DFC:  </span>F44F 6180    MOV.W      R1, #0x0400
+<span id="A08000e00">  0x08000E00:  </span>6101         STR        R1, [R0, #16]
+<span id="A08000e02">  0x08000E02:  </span>F44F 6100    MOV.W      R1, #0x0800
+<span id="A08000e06">  0x08000E06:  </span>6141         STR        R1, [R0, #20]
+<span id="A08000e08">  0x08000E08:  </span>F44F 5100    MOV.W      R1, #0x2000
+<span id="A08000e0c">  0x08000E0C:  </span>F2C3 0200    MOVT       R2, #0x3000              ; 0x30000124 = uwTick
+<span id="A08000e10">  0x08000E10:  </span>F2C4 0502    MOVT       R5, #0x4002
+<span id="A08000e14">  0x08000E14:  </span>2602         MOVS       R6, #2
+<span id="A08000e16">  0x08000E16:  </span>E9C0 1706    STRD       R1, R7, [R0, #24]
+<span id="A08000e1a">  0x08000E1A:  </span>E9C0 7708    STRD       R7, R7, [R0, #32]
+<span id="A08000e1e">  0x08000E1E:  </span>4629         MOV        R1, R5
+<span id="A08000e20">  0x08000E20:  </span>6813         LDR        R3, [R2]
+<span id="A08000e22">  0x08000E22:  </span>F880 6035    STRB.W     R6, [R0, #53]
+<span id="A08000e26">  0x08000E26:  </span>F851 6F08    LDR        R6, [R1, #8]!
+<span id="A08000e2a">  0x08000E2A:  </span>6001         STR        R1, [R0]
+<span id="A08000e2c">  0x08000E2C:  </span>F880 7034    STRB.W     R7, [R0, #52]
+<span id="A08000e30">  0x08000E30:  </span>F026 0701    BIC        R7, R6, #1
+<span id="A08000e34">  0x08000E34:  </span>600F         STR        R7, [R1]
+<br/>.L6:
+<span id="A08000e36">  0x08000E36:  </span>68A9         LDR        R1, [R5, #8]
+<span id="A08000e38">  0x08000E38:  </span>07C9         LSLS       R1, R1, #31
+<span id="A08000e3a">  0x08000E3A:  </span>D019         BEQ        .L10                     ; 0x08000E70
+<span id="A08000e3c">  0x08000E3C:  </span>6811         LDR        R1, [R2]
+<span id="A08000e3e">  0x08000E3E:  </span>1AC9         SUBS       R1, R1, R3
+<span id="A08000e40">  0x08000E40:  </span>2905         CMP        R1, #5
+<span id="A08000e42">  0x08000E42:  </span>D9F8         BLS        .L6                      ; 0x08000E36
+<span id="A08000e44">  0x08000E44:  </span>F04F 0E03    MOV.W      LR, #3
+<span id="A08000e48">  0x08000E48:  </span>2620         MOVS       R6, #32
+<span id="A08000e4a">  0x08000E4A:  </span>E06A         B          .L15                     ; 0x08000F22
+<br/>.L7:
+<span id="A08000e4c">  0x08000E4C:  </span>42AF         CMP        R7, R5
+<span id="A08000e4e">  0x08000E4E:  </span>BF18         IT         NE
+<span id="A08000e50">  0x08000E50:  </span>2A08         CMPNE      R2, #8
+<span id="A08000e52">  0x08000E52:  </span>D80B         BHI        .L9                      ; 0x08000E6C
+<span id="A08000e54">  0x08000E54:  </span>F505 4074    ADD.W      R0, R5, #0xF400
+<span id="A08000e58">  0x08000E58:  </span>4287         CMP        R7, R0
+<span id="A08000e5a">  0x08000E5A:  </span>BF18         IT         NE
+<span id="A08000e5c">  0x08000E5C:  </span>42AF         CMPNE      R7, R5
+<span id="A08000e5e">  0x08000E5E:  </span>F43F AF3A    BEQ.W      .L2                      ; 0x08000CD6
+<span id="A08000e62">  0x08000E62:  </span>E73B         B          .L3                      ; 0x08000CDC
 <br/>.L8:
-<span id="A080004aa">  0x080004AA:  </span>6F23         LDR        R3, [R4, #112]
-<span id="A080004ac">  0x080004AC:  </span>079B         LSLS       R3, R3, #30
-<span id="A080004ae">  0x080004AE:  </span>D404         BMI        .L9                      ; 0x080004BA
-<span id="A080004b0">  0x080004B0:  </span>6803         LDR        R3, [R0]
-<span id="A080004b2">  0x080004B2:  </span>1A5B         SUBS       R3, R3, R1
-<span id="A080004b4">  0x080004B4:  </span>4293         CMP        R3, R2
-<span id="A080004b6">  0x080004B6:  </span>D9F8         BLS        .L8                      ; 0x080004AA
-<span id="A080004b8">  0x080004B8:  </span>E123         B          .L22                     ; 0x08000702
+<span id="A08000e64">  0x08000E64:  </span>68E2         LDR        R2, [R4, #12]
+<span id="A08000e66">  0x08000E66:  </span>2A0F         CMP        R2, #15
+<span id="A08000e68">  0x08000E68:  </span>F67F AF27    BLS.W      .L1                      ; 0x08000CBA
 <br/>.L9:
-<span id="A080004ba">  0x080004BA:  </span>6921         LDR        R1, [R4, #16]
-<span id="A080004bc">  0x080004BC:  </span>F001 0138    AND        R1, R1, #56
-<span id="A080004c0">  0x080004C0:  </span>2918         CMP        R1, #24
-<span id="A080004c2">  0x080004C2:  </span>F040 80D7    BNE.W      .L18                     ; 0x08000674
-<span id="A080004c6">  0x080004C6:  </span>6AA1         LDR        R1, [R4, #40]
-<span id="A080004c8">  0x080004C8:  </span>F240 32F3    MOVW       R2, #0x03F3
-<span id="A080004cc">  0x080004CC:  </span>4011         ANDS       R1, R2
-<span id="A080004ce">  0x080004CE:  </span>F5B1 7FC9    CMP.W      R1, #0x0192
-<span id="A080004d2">  0x080004D2:  </span>6B21         LDR        R1, [R4, #48]
-<span id="A080004d4">  0x080004D4:  </span>F040 8115    BNE.W      .L22                     ; 0x08000702
-<span id="A080004d8">  0x080004D8:  </span>460A         MOV        R2, R1
-<span id="A080004da">  0x080004DA:  </span>F36F 225F    BFC        R2, #9, #23
-<span id="A080004de">  0x080004DE:  </span>2AC7         CMP        R2, #199
-<span id="A080004e0">  0x080004E0:  </span>F040 810F    BNE.W      .L22                     ; 0x08000702
-<span id="A080004e4">  0x080004E4:  </span>F401 427E    AND        R2, R1, #0xFE00
-<span id="A080004e8">  0x080004E8:  </span>F5B2 7F00    CMP.W      R2, #0x0200
-<span id="A080004ec">  0x080004EC:  </span>F040 8109    BNE.W      .L22                     ; 0x08000702
-<span id="A080004f0">  0x080004F0:  </span>F401 02FE    AND        R2, R1, #0x7F0000
-<span id="A080004f4">  0x080004F4:  </span>F5B2 3F80    CMP.W      R2, #0x010000
-<span id="A080004f8">  0x080004F8:  </span>F040 8103    BNE.W      .L22                     ; 0x08000702
-<span id="A080004fc">  0x080004FC:  </span>F001 41FE    AND        R1, R1, #0x7F000000
-<span id="A08000500">  0x08000500:  </span>F1B1 7F80    CMP.W      R1, #0x01000000
-<span id="A08000504">  0x08000504:  </span>F040 80FD    BNE.W      .L22                     ; 0x08000702
-<span id="A08000508">  0x08000508:  </span>6B61         LDR        R1, [R4, #52]
-<span id="A0800050a">  0x0800050A:  </span>F64F 72F8    MOVW       R2, #0xFFF8
-<span id="A0800050e">  0x0800050E:  </span>4211         TST        R1, R2
-<span id="A08000510">  0x08000510:  </span>D010         BEQ        .L11                     ; 0x08000534
-<span id="A08000512">  0x08000512:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A08000514">  0x08000514:  </span>F021 0101    BIC        R1, R1, #1
-<span id="A08000518">  0x08000518:  </span>62E1         STR        R1, [R4, #44]
-<span id="A0800051a">  0x0800051A:  </span>6801         LDR        R1, [R0]
+<span id="A08000e6c">  0x08000E6C:  </span>2001         MOVS       R0, #1
+<span id="A08000e6e">  0x08000E6E:  </span>E13D         B          .L36                     ; 0x080010EC
 <br/>.L10:
-<span id="A0800051c">  0x0800051C:  </span>6802         LDR        R2, [R0]
-<span id="A0800051e">  0x0800051E:  </span>428A         CMP        R2, R1
-<span id="A08000520">  0x08000520:  </span>D0FC         BEQ        .L10                     ; 0x0800051C
-<span id="A08000522">  0x08000522:  </span>6B61         LDR        R1, [R4, #52]
-<span id="A08000524">  0x08000524:  </span>F64F 72F8    MOVW       R2, #0xFFF8
-<span id="A08000528">  0x08000528:  </span>4391         BICS       R1, R2
-<span id="A0800052a">  0x0800052A:  </span>6361         STR        R1, [R4, #52]
-<span id="A0800052c">  0x0800052C:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A0800052e">  0x0800052E:  </span>F041 0101    ORR        R1, R1, #1
-<span id="A08000532">  0x08000532:  </span>62E1         STR        R1, [R4, #44]
+<span id="A08000e70">  0x08000E70:  </span>F248 023F    MOVW       R2, #0x803F
+<span id="A08000e74">  0x08000E74:  </span>68A9         LDR        R1, [R5, #8]
+<span id="A08000e76">  0x08000E76:  </span>F6CF 6210    MOVT       R2, #0xFE10
+<span id="A08000e7a">  0x08000E7A:  </span>400A         ANDS       R2, R1
+<span id="A08000e7c">  0x08000E7C:  </span>E9D0 3903    LDRD       R3, R9, [R0, #12]
+<span id="A08000e80">  0x08000E80:  </span>431A         ORRS       R2, R3
+<span id="A08000e82">  0x08000E82:  </span>E9D0 1E05    LDRD       R1, LR, [R0, #20]
+<span id="A08000e86">  0x08000E86:  </span>EA42 0209    ORR.W      R2, R2, R9
+<span id="A08000e8a">  0x08000E8A:  </span>F8D0 9024    LDR.W      R9, [R0, #36]
+<span id="A08000e8e">  0x08000E8E:  </span>E9D0 6307    LDRD       R6, R3, [R0, #28]
+<span id="A08000e92">  0x08000E92:  </span>4311         ORRS       R1, R2
+<span id="A08000e94">  0x08000E94:  </span>4331         ORRS       R1, R6
+<span id="A08000e96">  0x08000E96:  </span>E9D0 A70B    LDRD       R10, R7, [R0, #44]
+<span id="A08000e9a">  0x08000E9A:  </span>4319         ORRS       R1, R3
+<span id="A08000e9c">  0x08000E9C:  </span>F1B9 0F04    CMP.W      R9, #4
+<span id="A08000ea0">  0x08000EA0:  </span>EA47 020A    ORR.W      R2, R7, R10
+<span id="A08000ea4">  0x08000EA4:  </span>E9D0 8C01    LDRD       R8, R12, [R0, #4]
+<span id="A08000ea8">  0x08000EA8:  </span>BF08         IT         EQ
+<span id="A08000eaa">  0x08000EAA:  </span>4311         ORREQ      R1, R2
+<span id="A08000eac">  0x08000EAC:  </span>F1A8 023F    SUB.W      R2, R8, #63
+<span id="A08000eb0">  0x08000EB0:  </span>EA41 010C    ORR.W      R1, R1, R12
+<span id="A08000eb4">  0x08000EB4:  </span>2A13         CMP        R2, #19
+<span id="A08000eb6">  0x08000EB6:  </span>EA41 030E    ORR.W      R3, R1, LR
+<span id="A08000eba">  0x08000EBA:  </span>D807         BHI        .L11                     ; 0x08000ECC
+<span id="A08000ebc">  0x08000EBC:  </span>2101         MOVS       R1, #1
+<span id="A08000ebe">  0x08000EBE:  </span>4091         LSLS       R1, R2
+<span id="A08000ec0">  0x08000EC0:  </span>F240 320F    MOVW       R2, #0x030F
+<span id="A08000ec4">  0x08000EC4:  </span>F2C0 020F    MOVT       R2, #15
+<span id="A08000ec8">  0x08000EC8:  </span>4211         TST        R1, R2
+<span id="A08000eca">  0x08000ECA:  </span>D104         BNE        .L12                     ; 0x08000ED6
 <br/>.L11:
-<span id="A08000534">  0x08000534:  </span>F242 0C00    MOVW       R12, #0x2000
-<span id="A08000538">  0x08000538:  </span>F2C5 2C00    MOVT       R12, #0x5200
-<span id="A0800053c">  0x0800053C:  </span>F8DC 2000    LDR.W      R2, [R12]
-<span id="A08000540">  0x08000540:  </span>0712         LSLS       R2, R2, #28
-<span id="A08000542">  0x08000542:  </span>D10D         BNE        .L12                     ; 0x08000560
-<span id="A08000544">  0x08000544:  </span>F8DC 2000    LDR.W      R2, [R12]
-<span id="A08000548">  0x08000548:  </span>2301         MOVS       R3, #1
-<span id="A0800054a">  0x0800054A:  </span>F363 0203    BFI        R2, R3, #0, #4
-<span id="A0800054e">  0x0800054E:  </span>F8CC 2000    STR.W      R2, [R12]
-<span id="A08000552">  0x08000552:  </span>F8DC 2000    LDR.W      R2, [R12]
-<span id="A08000556">  0x08000556:  </span>F002 020F    AND        R2, R2, #15
-<span id="A0800055a">  0x0800055A:  </span>2A01         CMP        R2, #1
-<span id="A0800055c">  0x0800055C:  </span>F040 80D2    BNE.W      .L23                     ; 0x08000704
+<span id="A08000ecc">  0x08000ECC:  </span>F1A8 0129    SUB.W      R1, R8, #41
+<span id="A08000ed0">  0x08000ED0:  </span>2906         CMP        R1, #6
+<span id="A08000ed2">  0x08000ED2:  </span>F080 810E    BCS.W      .L37                     ; 0x080010F2
 <br/>.L12:
-<span id="A08000560">  0x08000560:  </span>69A2         LDR        R2, [R4, #24]
-<span id="A08000562">  0x08000562:  </span>69E2         LDR        R2, [R4, #28]
-<span id="A08000564">  0x08000564:  </span>69E2         LDR        R2, [R4, #28]
-<span id="A08000566">  0x08000566:  </span>6A22         LDR        R2, [R4, #32]
-<span id="A08000568">  0x08000568:  </span>69A2         LDR        R2, [R4, #24]
-<span id="A0800056a">  0x0800056A:  </span>69A2         LDR        R2, [R4, #24]
-<span id="A0800056c">  0x0800056C:  </span>F422 6270    BIC        R2, R2, #0x0F00
-<span id="A08000570">  0x08000570:  </span>61A2         STR        R2, [R4, #24]
-<span id="A08000572">  0x08000572:  </span>6822         LDR        R2, [R4]
-<span id="A08000574">  0x08000574:  </span>0192         LSLS       R2, R2, #6
-<span id="A08000576">  0x08000576:  </span>F140 80C5    BPL.W      .L23                     ; 0x08000704
-<span id="A0800057a">  0x0800057A:  </span>6922         LDR        R2, [R4, #16]
-<span id="A0800057c">  0x0800057C:  </span>2303         MOVS       R3, #3
-<span id="A0800057e">  0x0800057E:  </span>F363 0202    BFI        R2, R3, #0, #3
-<span id="A08000582">  0x08000582:  </span>6122         STR        R2, [R4, #16]
-<span id="A08000584">  0x08000584:  </span>6802         LDR        R2, [R0]
-<span id="A08000586">  0x08000586:  </span>F241 3388    MOVW       R3, #0x1388
+<span id="A08000ed6">  0x08000ED6:  </span>F443 1380    ORR        R3, R3, #0x100000
 <br/>.L13:
-<span id="A0800058a">  0x0800058A:  </span>6921         LDR        R1, [R4, #16]
-<span id="A0800058c">  0x0800058C:  </span>F001 0138    AND        R1, R1, #56
-<span id="A08000590">  0x08000590:  </span>2918         CMP        R1, #24
-<span id="A08000592">  0x08000592:  </span>D004         BEQ        .L14                     ; 0x0800059E
-<span id="A08000594">  0x08000594:  </span>6801         LDR        R1, [R0]
-<span id="A08000596">  0x08000596:  </span>1A89         SUBS       R1, R1, R2
-<span id="A08000598">  0x08000598:  </span>4299         CMP        R1, R3
-<span id="A0800059a">  0x0800059A:  </span>D9F6         BLS        .L13                     ; 0x0800058A
-<span id="A0800059c">  0x0800059C:  </span>E0B2         B          .L23                     ; 0x08000704
+<span id="A08000eda">  0x08000EDA:  </span>60AB         STR        R3, [R5, #8]
+<span id="A08000edc">  0x08000EDC:  </span>F1B9 0F04    CMP.W      R9, #4
+<span id="A08000ee0">  0x08000EE0:  </span>69E9         LDR        R1, [R5, #28]
+<span id="A08000ee2">  0x08000EE2:  </span>F021 0107    BIC        R1, R1, #7
+<span id="A08000ee6">  0x08000EE6:  </span>EA49 0901    ORR.W      R9, R9, R1
+<span id="A08000eea">  0x08000EEA:  </span>D12C         BNE        .L20                     ; 0x08000F46
+<span id="A08000eec">  0x08000EEC:  </span>6A83         LDR        R3, [R0, #40]
+<span id="A08000eee">  0x08000EEE:  </span>F1BA 0F00    CMP.W      R10, #0
+<span id="A08000ef2">  0x08000EF2:  </span>EA49 0903    ORR.W      R9, R9, R3
+<span id="A08000ef6">  0x08000EF6:  </span>D026         BEQ        .L20                     ; 0x08000F46
+<span id="A08000ef8">  0x08000EF8:  </span>F5BE 5F00    CMP.W      LR, #0x2000
+<span id="A08000efc">  0x08000EFC:  </span>D008         BEQ        .L14                     ; 0x08000F10
+<span id="A08000efe">  0x08000EFE:  </span>F1BE 0F00    CMP.W      LR, #0
+<span id="A08000f02">  0x08000F02:  </span>D118         BNE        .L17                     ; 0x08000F36
+<span id="A08000f04">  0x08000F04:  </span>2B02         CMP        R3, #2
+<span id="A08000f06">  0x08000F06:  </span>D019         BEQ        .L18                     ; 0x08000F3C
+<span id="A08000f08">  0x08000F08:  </span>2B01         CMP        R3, #1
+<span id="A08000f0a">  0x08000F0A:  </span>D00E         BEQ        .L16                     ; 0x08000F2A
+<span id="A08000f0c">  0x08000F0C:  </span>B1B3         CBZ        R3, .L18                 ; 0x08000F3C
+<span id="A08000f0e">  0x08000F0E:  </span>E01A         B          .L20                     ; 0x08000F46
 <br/>.L14:
-<span id="A0800059e">  0x0800059E:  </span>69A0         LDR        R0, [R4, #24]
-<span id="A080005a0">  0x080005A0:  </span>0700         LSLS       R0, R0, #28
-<span id="A080005a2">  0x080005A2:  </span>BF1E         ITTT       NE
-<span id="A080005a4">  0x080005A4:  </span>69A0         LDRNE      R0, [R4, #24]
-<span id="A080005a6">  0x080005A6:  </span>F020 000F    BICNE      R0, R0, #15
-<span id="A080005aa">  0x080005AA:  </span>61A0         STRNE      R0, [R4, #24]
-<span id="A080005ac">  0x080005AC:  </span>F8DC 0000    LDR.W      R0, [R12]
-<span id="A080005b0">  0x080005B0:  </span>F010 0F0E    TST        R0, #14
-<span id="A080005b4">  0x080005B4:  </span>D00D         BEQ        .L15                     ; 0x080005D2
-<span id="A080005b6">  0x080005B6:  </span>F8DC 0000    LDR.W      R0, [R12]
-<span id="A080005ba">  0x080005BA:  </span>2101         MOVS       R1, #1
-<span id="A080005bc">  0x080005BC:  </span>F361 0003    BFI        R0, R1, #0, #4
-<span id="A080005c0">  0x080005C0:  </span>F8CC 0000    STR.W      R0, [R12]
-<span id="A080005c4">  0x080005C4:  </span>F8DC 0000    LDR.W      R0, [R12]
-<span id="A080005c8">  0x080005C8:  </span>F000 000F    AND        R0, R0, #15
-<span id="A080005cc">  0x080005CC:  </span>2801         CMP        R0, #1
-<span id="A080005ce">  0x080005CE:  </span>F040 8099    BNE.W      .L23                     ; 0x08000704
+<span id="A08000f10">  0x08000F10:  </span>2B03         CMP        R3, #3
+<span id="A08000f12">  0x08000F12:  </span>D818         BHI        .L20                     ; 0x08000F46
+<span id="A08000f14">  0x08000F14:  </span>F04F 0E01    MOV.W      LR, #1
+<span id="A08000f18">  0x08000F18:  </span>2640         MOVS       R6, #64
+<span id="A08000f1a">  0x08000F1A:  </span>E8DF F003    TBB        [PC, R3]
+<span id="A08000f1e">  0x08000F1E:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A08000f1f">  0x08000F1F:  </span>0F           DC.B       0x0F                     ; '\x0F'
+<span id="A08000f20">  0x08000F20:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A08000f21">  0x08000F21:  </span>06           DC.B       0x06                     ; '\x06'
 <br/>.L15:
-<span id="A080005d2">  0x080005D2:  </span>69A0         LDR        R0, [R4, #24]
-<span id="A080005d4">  0x080005D4:  </span>F010 0F70    TST        R0, #112
-<span id="A080005d8">  0x080005D8:  </span>BF1E         ITTT       NE
-<span id="A080005da">  0x080005DA:  </span>69A0         LDRNE      R0, [R4, #24]
-<span id="A080005dc">  0x080005DC:  </span>F020 0070    BICNE      R0, R0, #112
-<span id="A080005e0">  0x080005E0:  </span>61A0         STRNE      R0, [R4, #24]
-<span id="A080005e2">  0x080005E2:  </span>69E0         LDR        R0, [R4, #28]
-<span id="A080005e4">  0x080005E4:  </span>F010 0F70    TST        R0, #112
-<span id="A080005e8">  0x080005E8:  </span>BF1E         ITTT       NE
-<span id="A080005ea">  0x080005EA:  </span>69E0         LDRNE      R0, [R4, #28]
-<span id="A080005ec">  0x080005EC:  </span>F020 0070    BICNE      R0, R0, #112
-<span id="A080005f0">  0x080005F0:  </span>61E0         STRNE      R0, [R4, #28]
-<span id="A080005f2">  0x080005F2:  </span>69E0         LDR        R0, [R4, #28]
-<span id="A080005f4">  0x080005F4:  </span>F410 6FE0    TST        R0, #0x0700
-<span id="A080005f8">  0x080005F8:  </span>BF1E         ITTT       NE
-<span id="A080005fa">  0x080005FA:  </span>69E0         LDRNE      R0, [R4, #28]
-<span id="A080005fc">  0x080005FC:  </span>F420 60E0    BICNE      R0, R0, #0x0700
-<span id="A08000600">  0x08000600:  </span>61E0         STRNE      R0, [R4, #28]
-<span id="A08000602">  0x08000602:  </span>6A20         LDR        R0, [R4, #32]
-<span id="A08000604">  0x08000604:  </span>F010 0F70    TST        R0, #112
-<span id="A08000608">  0x08000608:  </span>BF1E         ITTT       NE
-<span id="A0800060a">  0x0800060A:  </span>6A20         LDRNE      R0, [R4, #32]
-<span id="A0800060c">  0x0800060C:  </span>F020 0070    BICNE      R0, R0, #112
-<span id="A08000610">  0x08000610:  </span>6220         STRNE      R0, [R4, #32]
-<span id="A08000612">  0x08000612:  </span>F7FF FE5B    BL         <a href="#°öÙ#">HAL_RCC_GetSysClockFreq</a>  ; 0x080002CC
-<span id="A08000616">  0x08000616:  </span>69A1         LDR        R1, [R4, #24]
-<span id="A08000618">  0x08000618:  </span>F640 32AE    MOVW       R2, #0x0BAE              ; 0x08000BAE = D1CorePrescTable
-<span id="A0800061c">  0x0800061C:  </span>F6C0 0200    MOVT       R2, #0x0800              ; 0x08000BAE = D1CorePrescTable
-<span id="A08000620">  0x08000620:  </span>F3C1 2103    UBFX       R1, R1, #8, #4
-<span id="A08000624">  0x08000624:  </span>5C51         LDRB       R1, [R2, R1]
-<span id="A08000626">  0x08000626:  </span>F240 0228    MOVW       R2, #40                  ; 0x30000028 = uwTickPrio
-<span id="A0800062a">  0x0800062A:  </span>F2C3 0200    MOVT       R2, #0x3000              ; 0x30000028 = uwTickPrio
-<span id="A0800062e">  0x0800062E:  </span>69A3         LDR        R3, [R4, #24]
-<span id="A08000630">  0x08000630:  </span>F240 032C    MOVW       R3, #44                  ; 0x3000002C = SystemCoreClock
-<span id="A08000634">  0x08000634:  </span>F001 011F    AND        R1, R1, #31
-<span id="A08000638">  0x08000638:  </span>7812         LDRB       R2, [R2]
-<span id="A0800063a">  0x0800063A:  </span>F2C3 0300    MOVT       R3, #0x3000              ; 0x3000002C = SystemCoreClock
-<span id="A0800063e">  0x0800063E:  </span>FA20 F101    LSR.W      R1, R0, R1
-<span id="A08000642">  0x08000642:  </span>2010         MOVS       R0, #16
-<span id="A08000644">  0x08000644:  </span>2A00         CMP        R2, #0
-<span id="A08000646">  0x08000646:  </span>6019         STR        R1, [R3]
-<span id="A08000648">  0x08000648:  </span>BF18         IT         NE
-<span id="A0800064a">  0x0800064A:  </span>200F         MOVNE      R0, #15
-<span id="A0800064c">  0x0800064C:  </span>F000 FA63    BL         <a href="#`íu²i">HAL_InitTick</a>             ; 0x08000B16
-<span id="A08000650">  0x08000650:  </span>2800         CMP        R0, #0
-<span id="A08000652">  0x08000652:  </span>D157         BNE        .L23                     ; 0x08000704
-<span id="A08000654">  0x08000654:  </span>B002         ADD        SP, SP, #8
-<span id="A08000656">  0x08000656:  </span>BD10         POP        {R4, PC}
+<span id="A08000f22">  0x08000F22:  </span>6546         STR        R6, [R0, #84]
+<span id="A08000f24">  0x08000F24:  </span>F880 E035    STRB.W     LR, [R0, #53]
+<span id="A08000f28">  0x08000F28:  </span>B672         CPSID      i
 <br/>.L16:
-<span id="A08000658">  0x08000658:  </span>6821         LDR        R1, [R4]
-<span id="A0800065a">  0x0800065A:  </span>F441 3180    ORR        R1, R1, #0x010000
-<span id="A0800065e">  0x0800065E:  </span>6021         STR        R1, [R4]
-<span id="A08000660">  0x08000660:  </span>6801         LDR        R1, [R0]
+<span id="A08000f2a">  0x08000F2A:  </span>F1AA 71C0    SUB.W      R1, R10, #0x01800000
+<span id="A08000f2e">  0x08000F2E:  </span>FAB1 F181    CLZ        R1, R1
+<span id="A08000f32">  0x08000F32:  </span>094B         LSRS       R3, R1, #5
+<span id="A08000f34">  0x08000F34:  </span>E004         B          .L19                     ; 0x08000F40
 <br/>.L17:
-<span id="A08000662">  0x08000662:  </span>6822         LDR        R2, [R4]
-<span id="A08000664">  0x08000664:  </span>0392         LSLS       R2, R2, #14
-<span id="A08000666">  0x08000666:  </span>F53F AF09    BMI.W      .L5                      ; 0x0800047C
-<span id="A0800066a">  0x0800066A:  </span>6802         LDR        R2, [R0]
-<span id="A0800066c">  0x0800066C:  </span>1A52         SUBS       R2, R2, R1
-<span id="A0800066e">  0x0800066E:  </span>2A64         CMP        R2, #100
-<span id="A08000670">  0x08000670:  </span>D9F7         BLS        .L17                     ; 0x08000662
-<span id="A08000672">  0x08000672:  </span>E046         B          .L22                     ; 0x08000702
+<span id="A08000f36">  0x08000F36:  </span>2B03         CMP        R3, #3
+<span id="A08000f38">  0x08000F38:  </span>F040 80E2    BNE.W      .L38                     ; 0x08001100
 <br/>.L18:
-<span id="A08000674">  0x08000674:  </span>6821         LDR        R1, [R4]
-<span id="A08000676">  0x08000676:  </span>F021 7180    BIC        R1, R1, #0x01000000
-<span id="A0800067a">  0x0800067A:  </span>6021         STR        R1, [R4]
-<span id="A0800067c">  0x0800067C:  </span>6801         LDR        R1, [R0]
+<span id="A08000f3c">  0x08000F3C:  </span>F3CA 6300    UBFX       R3, R10, #24, #1
 <br/>.L19:
-<span id="A0800067e">  0x0800067E:  </span>6822         LDR        R2, [R4]
-<span id="A08000680">  0x08000680:  </span>0192         LSLS       R2, R2, #6
-<span id="A08000682">  0x08000682:  </span>D504         BPL        .L20                     ; 0x0800068E
-<span id="A08000684">  0x08000684:  </span>6802         LDR        R2, [R0]
-<span id="A08000686">  0x08000686:  </span>1A52         SUBS       R2, R2, R1
-<span id="A08000688">  0x08000688:  </span>2A02         CMP        R2, #2
-<span id="A0800068a">  0x0800068A:  </span>D9F8         BLS        .L19                     ; 0x0800067E
-<span id="A0800068c">  0x0800068C:  </span>E039         B          .L22                     ; 0x08000702
+<span id="A08000f40">  0x08000F40:  </span>2B00         CMP        R3, #0
+<span id="A08000f42">  0x08000F42:  </span>F040 80DF    BNE.W      .L39                     ; 0x08001104
 <br/>.L20:
-<span id="A0800068e">  0x0800068E:  </span>6AA1         LDR        R1, [R4, #40]
-<span id="A08000690">  0x08000690:  </span>F240 32F3    MOVW       R2, #0x03F3
-<span id="A08000694">  0x08000694:  </span>4391         BICS       R1, R2
-<span id="A08000696">  0x08000696:  </span>F64F 72F8    MOVW       R2, #0xFFF8
-<span id="A0800069a">  0x0800069A:  </span>F501 71C9    ADD.W      R1, R1, #0x0192
-<span id="A0800069e">  0x0800069E:  </span>62A1         STR        R1, [R4, #40]
-<span id="A080006a0">  0x080006A0:  </span>F240 21C7    MOVW       R1, #0x02C7
-<span id="A080006a4">  0x080006A4:  </span>F2C0 1101    MOVT       R1, #0x0101
-<span id="A080006a8">  0x080006A8:  </span>6321         STR        R1, [R4, #48]
-<span id="A080006aa">  0x080006AA:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A080006ac">  0x080006AC:  </span>F021 0101    BIC        R1, R1, #1
-<span id="A080006b0">  0x080006B0:  </span>62E1         STR        R1, [R4, #44]
-<span id="A080006b2">  0x080006B2:  </span>6B61         LDR        R1, [R4, #52]
-<span id="A080006b4">  0x080006B4:  </span>4391         BICS       R1, R2
-<span id="A080006b6">  0x080006B6:  </span>6361         STR        R1, [R4, #52]
-<span id="A080006b8">  0x080006B8:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A080006ba">  0x080006BA:  </span>F021 010C    BIC        R1, R1, #12
-<span id="A080006be">  0x080006BE:  </span>62E1         STR        R1, [R4, #44]
-<span id="A080006c0">  0x080006C0:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A080006c2">  0x080006C2:  </span>F041 0102    ORR        R1, R1, #2
-<span id="A080006c6">  0x080006C6:  </span>62E1         STR        R1, [R4, #44]
-<span id="A080006c8">  0x080006C8:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A080006ca">  0x080006CA:  </span>F441 3180    ORR        R1, R1, #0x010000
-<span id="A080006ce">  0x080006CE:  </span>62E1         STR        R1, [R4, #44]
-<span id="A080006d0">  0x080006D0:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A080006d2">  0x080006D2:  </span>F441 3100    ORR        R1, R1, #0x020000
-<span id="A080006d6">  0x080006D6:  </span>62E1         STR        R1, [R4, #44]
-<span id="A080006d8">  0x080006D8:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A080006da">  0x080006DA:  </span>F441 2180    ORR        R1, R1, #0x040000
-<span id="A080006de">  0x080006DE:  </span>62E1         STR        R1, [R4, #44]
-<span id="A080006e0">  0x080006E0:  </span>6AE1         LDR        R1, [R4, #44]
-<span id="A080006e2">  0x080006E2:  </span>F041 0101    ORR        R1, R1, #1
-<span id="A080006e6">  0x080006E6:  </span>62E1         STR        R1, [R4, #44]
-<span id="A080006e8">  0x080006E8:  </span>6821         LDR        R1, [R4]
-<span id="A080006ea">  0x080006EA:  </span>F041 7180    ORR        R1, R1, #0x01000000
-<span id="A080006ee">  0x080006EE:  </span>6021         STR        R1, [R4]
-<span id="A080006f0">  0x080006F0:  </span>6801         LDR        R1, [R0]
+<span id="A08000f46">  0x08000F46:  </span>F640 0780    MOVW       R7, #0x0880
+<span id="A08000f4a">  0x08000F4A:  </span>F2C4 0702    MOVT       R7, #0x4002
+<span id="A08000f4e">  0x08000F4E:  </span>2100         MOVS       R1, #0
+<span id="A08000f50">  0x08000F50:  </span>F2C4 0102    MOVT       R1, #0x4002
+<span id="A08000f54">  0x08000F54:  </span>F8C5 901C    STR.W      R9, [R5, #28]
+<span id="A08000f58">  0x08000F58:  </span>2300         MOVS       R3, #0
+<span id="A08000f5a">  0x08000F5A:  </span>E9C0 1316    STRD       R1, R3, [R0, #88]
+<span id="A08000f5e">  0x08000F5E:  </span>213F         MOVS       R1, #63
+<span id="A08000f60">  0x08000F60:  </span>2601         MOVS       R6, #1
+<span id="A08000f62">  0x08000F62:  </span>F1BC 0F80    CMP.W      R12, #128
+<span id="A08000f66">  0x08000F66:  </span>6029         STR        R1, [R5]
+<span id="A08000f68">  0x08000F68:  </span>F505 61FF    ADD.W      R1, R5, #0x07F8
+<span id="A08000f6c">  0x08000F6C:  </span>E9C0 1718    STRD       R1, R7, [R0, #96]
+<span id="A08000f70">  0x08000F70:  </span>6686         STR        R6, [R0, #104]
+<span id="A08000f72">  0x08000F72:  </span>D104         BNE        .L21                     ; 0x08000F7E
+<span id="A08000f74">  0x08000F74:  </span>6043         STR        R3, [R0, #4]
+<span id="A08000f76">  0x08000F76:  </span>F8C5 37F8    STR.W      R3, [R5, #0x07F8]
+<span id="A08000f7a">  0x08000F7A:  </span>607E         STR        R6, [R7, #4]
+<span id="A08000f7c">  0x08000F7C:  </span>E016         B          .L22                     ; 0x08000FAC
 <br/>.L21:
-<span id="A080006f2">  0x080006F2:  </span>6822         LDR        R2, [R4]
-<span id="A080006f4">  0x080006F4:  </span>0192         LSLS       R2, R2, #6
-<span id="A080006f6">  0x080006F6:  </span>F53F AF1D    BMI.W      .L11                     ; 0x08000534
-<span id="A080006fa">  0x080006FA:  </span>6802         LDR        R2, [R0]
-<span id="A080006fc">  0x080006FC:  </span>1A52         SUBS       R2, R2, R1
-<span id="A080006fe">  0x080006FE:  </span>2A02         CMP        R2, #2
-<span id="A08000700">  0x08000700:  </span>D9F7         BLS        .L21                     ; 0x080006F2
+<span id="A08000f7e">  0x08000F7E:  </span>F1A8 0101    SUB.W      R1, R8, #1
+<span id="A08000f82">  0x08000F82:  </span>FA5F F388    UXTB       R3, R8
+<span id="A08000f86">  0x08000F86:  </span>2907         CMP        R1, #7
+<span id="A08000f88">  0x08000F88:  </span>F8C5 37F8    STR.W      R3, [R5, #0x07F8]
+<span id="A08000f8c">  0x08000F8C:  </span>607E         STR        R6, [R7, #4]
+<span id="A08000f8e">  0x08000F8E:  </span>D80D         BHI        .L22                     ; 0x08000FAC
+<span id="A08000f90">  0x08000F90:  </span>3B01         SUBS       R3, #1
+<span id="A08000f92">  0x08000F92:  </span>2B08         CMP        R3, #8
+<span id="A08000f94">  0x08000F94:  </span>D20F         BCS        .L23                     ; 0x08000FB6
+<span id="A08000f96">  0x08000F96:  </span>EB07 0188    ADD.W      R1, R7, R8, LSL #2
+<span id="A08000f9a">  0x08000F9A:  </span>F107 02C0    ADD.W      R2, R7, #192
+<span id="A08000f9e">  0x08000F9E:  </span>317C         ADDS       R1, #124
+<span id="A08000fa0">  0x08000FA0:  </span>FA06 F303    LSL.W      R3, R6, R3
+<span id="A08000fa4">  0x08000FA4:  </span>E9C0 121B    STRD       R1, R2, [R0, #108]
+<span id="A08000fa8">  0x08000FA8:  </span>6743         STR        R3, [R0, #116]
+<span id="A08000faa">  0x08000FAA:  </span>E007         B          .L24                     ; 0x08000FBC
 <br/>.L22:
-<span id="A08000702">  0x08000702:  </span>B672         CPSID      i
+<span id="A08000fac">  0x08000FAC:  </span>2100         MOVS       R1, #0
+<span id="A08000fae">  0x08000FAE:  </span>6741         STR        R1, [R0, #116]
+<span id="A08000fb0">  0x08000FB0:  </span>E9C0 111B    STRD       R1, R1, [R0, #108]
+<span id="A08000fb4">  0x08000FB4:  </span>E005         B          .L25                     ; 0x08000FC2
 <br/>.L23:
-<span id="A08000704">  0x08000704:  </span>B672         CPSID      i
+<span id="A08000fb6">  0x08000FB6:  </span>F100 016C    ADD.W      R1, R0, #108
+<span id="A08000fba">  0x08000FBA:  </span>C90E         LDM        R1, {R1-R3}
+<br/>.L24:
+<span id="A08000fbc">  0x08000FBC:  </span>2700         MOVS       R7, #0
+<span id="A08000fbe">  0x08000FBE:  </span>600F         STR        R7, [R1]
+<span id="A08000fc0">  0x08000FC0:  </span>6053         STR        R3, [R2, #4]
+<br/>.L25:
+<span id="A08000fc2">  0x08000FC2:  </span>2100         MOVS       R1, #0
+<span id="A08000fc4">  0x08000FC4:  </span>6541         STR        R1, [R0, #84]
+<span id="A08000fc6">  0x08000FC6:  </span>F880 6035    STRB.W     R6, [R0, #53]
+<span id="A08000fca">  0x08000FCA:  </span>67A0         STR        R0, [R4, #120]
+<span id="A08000fcc">  0x08000FCC:  </span>6384         STR        R4, [R0, #56]
+<span id="A08000fce">  0x08000FCE:  </span>F64E 500C    MOVW       R0, #0xED0C
+<span id="A08000fd2">  0x08000FD2:  </span>F2CE 0000    MOVT       R0, #0xE000
+<span id="A08000fd6">  0x08000FD6:  </span>F6A0 4204    SUBW       R2, R0, #0x0C04
+<span id="A08000fda">  0x08000FDA:  </span>6800         LDR        R0, [R0]
+<span id="A08000fdc">  0x08000FDC:  </span>F882 134C    STRB.W     R1, [R2, #0x034C]
+<span id="A08000fe0">  0x08000FE0:  </span>F44F 1080    MOV.W      R0, #0x100000
+<span id="A08000fe4">  0x08000FE4:  </span>6010         STR        R0, [R2]
+<span id="A08000fe6">  0x08000FE6:  </span>6827         LDR        R7, [R4]
+<br/>.L26:
+<span id="A08000fe8">  0x08000FE8:  </span>2002         MOVS       R0, #2
+<span id="A08000fea">  0x08000FEA:  </span>F884 0081    STRB.W     R0, [R4, #129]
+<span id="A08000fee">  0x08000FEE:  </span>6838         LDR        R0, [R7]
+<span id="A08000ff0">  0x08000FF0:  </span>F020 0001    BIC        R0, R0, #1
+<span id="A08000ff4">  0x08000FF4:  </span>6038         STR        R0, [R7]
+<span id="A08000ff6">  0x08000FF6:  </span>68B8         LDR        R0, [R7, #8]
+<span id="A08000ff8">  0x08000FF8:  </span>F8D4 8018    LDR.W      R8, [R4, #24]
+<span id="A08000ffc">  0x08000FFC:  </span>F1B8 6F80    CMP.W      R8, #0x04000000
+<span id="A08001000">  0x08001000:  </span>F400 1EF8    AND        LR, R0, #0x1F0000
+<span id="A08001004">  0x08001004:  </span>F8D4 A004    LDR.W      R10, [R4, #4]
+<span id="A08001008">  0x08001008:  </span>D110         BNE        .L29                     ; 0x0800102C
+<span id="A0800100a">  0x0800100A:  </span>F1BA 0F00    CMP.W      R10, #0
+<span id="A0800100e">  0x0800100E:  </span>D005         BEQ        .L27                     ; 0x0800101C
+<span id="A08001010">  0x08001010:  </span>F5BA 0F80    CMP.W      R10, #0x400000
+<span id="A08001014">  0x08001014:  </span>D10A         BNE        .L29                     ; 0x0800102C
+<span id="A08001016">  0x08001016:  </span>6BA3         LDR        R3, [R4, #56]
+<span id="A08001018">  0x08001018:  </span>B973         CBNZ       R3, .L31                 ; 0x08001038
+<span id="A0800101a">  0x0800101A:  </span>E003         B          .L28                     ; 0x08001024
+<br/>.L27:
+<span id="A0800101c">  0x0800101C:  </span>6BA3         LDR        R3, [R4, #56]
+<span id="A0800101e">  0x0800101E:  </span>F1B3 5F80    CMP.W      R3, #0x10000000
+<span id="A08001022">  0x08001022:  </span>D106         BNE        .L30                     ; 0x08001032
+<br/>.L28:
+<span id="A08001024">  0x08001024:  </span>683B         LDR        R3, [R7]
+<span id="A08001026">  0x08001026:  </span>F443 5380    ORR        R3, R3, #0x1000
+<span id="A0800102a">  0x0800102A:  </span>603B         STR        R3, [R7]
+<br/>.L29:
+<span id="A0800102c">  0x0800102C:  </span>EA5F 234A    LSLS.W     R3, R10, #9
+<span id="A08001030">  0x08001030:  </span>D402         BMI        .L31                     ; 0x08001038
+<br/>.L30:
+<span id="A08001032">  0x08001032:  </span>F04F 0C01    MOV.W      R12, #1
+<span id="A08001036">  0x08001036:  </span>E00B         B          .L32                     ; 0x08001050
+<br/>.L31:
+<span id="A08001038">  0x08001038:  </span>68E6         LDR        R6, [R4, #12]
+<span id="A0800103a">  0x0800103A:  </span>F04F 0C00    MOV.W      R12, #0
+<span id="A0800103e">  0x0800103E:  </span>2E07         CMP        R6, #7
+<span id="A08001040">  0x08001040:  </span>D306         BCC        .L32                     ; 0x08001050
+<span id="A08001042">  0x08001042:  </span>683B         LDR        R3, [R7]
+<span id="A08001044">  0x08001044:  </span>6D25         LDR        R5, [R4, #80]
+<span id="A08001046">  0x08001046:  </span>F423 7380    BIC        R3, R3, #0x0100
+<span id="A0800104a">  0x0800104A:  </span>432B         ORRS       R3, R5
+<span id="A0800104c">  0x0800104C:  </span>603B         STR        R3, [R7]
+<span id="A0800104e">  0x0800104E:  </span>E004         B          .L33                     ; 0x0800105A
+<br/>.L32:
+<span id="A08001050">  0x08001050:  </span>683E         LDR        R6, [R7]
+<span id="A08001052">  0x08001052:  </span>F426 7680    BIC        R6, R6, #0x0100
+<span id="A08001056">  0x08001056:  </span>603E         STR        R6, [R7]
+<span id="A08001058">  0x08001058:  </span>68E6         LDR        R6, [R4, #12]
+<br/>.L33:
+<span id="A0800105a">  0x0800105A:  </span>69E2         LDR        R2, [R4, #28]
+<span id="A0800105c">  0x0800105C:  </span>EA46 060E    ORR.W      R6, R6, LR
+<span id="A08001060">  0x08001060:  </span>6AA1         LDR        R1, [R4, #40]
+<span id="A08001062">  0x08001062:  </span>4332         ORRS       R2, R6
+<span id="A08001064">  0x08001064:  </span>6BE6         LDR        R6, [R4, #60]
+<span id="A08001066">  0x08001066:  </span>4311         ORRS       R1, R2
+<span id="A08001068">  0x08001068:  </span>F8D4 B008    LDR.W      R11, [R4, #8]
+<span id="A0800106c">  0x0800106C:  </span>4331         ORRS       R1, R6
+<span id="A0800106e">  0x0800106E:  </span>E9D4 9304    LDRD       R9, R3, [R4, #16]
+<span id="A08001072">  0x08001072:  </span>60B9         STR        R1, [R7, #8]
+<span id="A08001074">  0x08001074:  </span>E9D4 150D    LDRD       R1, R5, [R4, #52]
+<span id="A08001078">  0x08001078:  </span>6A62         LDR        R2, [R4, #36]
+<span id="A0800107a">  0x0800107A:  </span>4311         ORRS       R1, R2
+<span id="A0800107c">  0x0800107C:  </span>6A22         LDR        R2, [R4, #32]
+<span id="A0800107e">  0x0800107E:  </span>4329         ORRS       R1, R5
+<span id="A08001080">  0x08001080:  </span>EA41 0109    ORR.W      R1, R1, R9
+<span id="A08001084">  0x08001084:  </span>4319         ORRS       R1, R3
+<span id="A08001086">  0x08001086:  </span>E9D4 0612    LDRD       R0, R6, [R4, #72]
+<span id="A0800108a">  0x0800108A:  </span>4311         ORRS       R1, R2
+<span id="A0800108c">  0x0800108C:  </span>6DA2         LDR        R2, [R4, #88]
+<span id="A0800108e">  0x0800108E:  </span>4331         ORRS       R1, R6
+<span id="A08001090">  0x08001090:  </span>EA41 010B    ORR.W      R1, R1, R11
+<span id="A08001094">  0x08001094:  </span>4308         ORRS       R0, R1
+<span id="A08001096">  0x08001096:  </span>4310         ORRS       R0, R2
+<span id="A08001098">  0x08001098:  </span>F1BA 0F00    CMP.W      R10, #0
+<span id="A0800109c">  0x0800109C:  </span>EA40 0008    ORR.W      R0, R0, R8
+<span id="A080010a0">  0x080010A0:  </span>EA40 000A    ORR.W      R0, R0, R10
+<span id="A080010a4">  0x080010A4:  </span>60F8         STR        R0, [R7, #12]
+<span id="A080010a6">  0x080010A6:  </span>D00D         BEQ        .L34                     ; 0x080010C4
+<span id="A080010a8">  0x080010A8:  </span>6D38         LDR        R0, [R7, #80]
+<span id="A080010aa">  0x080010AA:  </span>F1BC 0F00    CMP.W      R12, #0
+<span id="A080010ae">  0x080010AE:  </span>F020 0001    BIC        R0, R0, #1
+<span id="A080010b2">  0x080010B2:  </span>6538         STR        R0, [R7, #80]
+<span id="A080010b4">  0x080010B4:  </span>D114         BNE        .L35                     ; 0x080010E0
+<span id="A080010b6">  0x080010B6:  </span>68F8         LDR        R0, [R7, #12]
+<span id="A080010b8">  0x080010B8:  </span>6D61         LDR        R1, [R4, #84]
+<span id="A080010ba">  0x080010BA:  </span>F020 4000    BIC        R0, R0, #0x80000000
+<span id="A080010be">  0x080010BE:  </span>4308         ORRS       R0, R1
+<span id="A080010c0">  0x080010C0:  </span>60F8         STR        R0, [R7, #12]
+<span id="A080010c2">  0x080010C2:  </span>E00D         B          .L35                     ; 0x080010E0
+<br/>.L34:
+<span id="A080010c4">  0x080010C4:  </span>68B8         LDR        R0, [R7, #8]
+<span id="A080010c6">  0x080010C6:  </span>2101         MOVS       R1, #1
+<span id="A080010c8">  0x080010C8:  </span>F361 20CC    BFI        R0, R1, #11, #2
+<span id="A080010cc">  0x080010CC:  </span>60B8         STR        R0, [R7, #8]
+<span id="A080010ce">  0x080010CE:  </span>68B8         LDR        R0, [R7, #8]
+<span id="A080010d0">  0x080010D0:  </span>2102         MOVS       R1, #2
+<span id="A080010d2">  0x080010D2:  </span>F361 204A    BFI        R0, R1, #9, #2
+<span id="A080010d6">  0x080010D6:  </span>60B8         STR        R0, [R7, #8]
+<span id="A080010d8">  0x080010D8:  </span>6D38         LDR        R0, [R7, #80]
+<span id="A080010da">  0x080010DA:  </span>F020 0001    BIC        R0, R0, #1
+<span id="A080010de">  0x080010DE:  </span>6538         STR        R0, [R7, #80]
+<br/>.L35:
+<span id="A080010e0">  0x080010E0:  </span>2000         MOVS       R0, #0
+<span id="A080010e2">  0x080010E2:  </span>F8C4 0084    STR.W      R0, [R4, #132]
+<span id="A080010e6">  0x080010E6:  </span>2101         MOVS       R1, #1
+<span id="A080010e8">  0x080010E8:  </span>F884 1081    STRB.W     R1, [R4, #129]
+<br/>.L36:
+<span id="A080010ec">  0x080010EC:  </span>B031         ADD        SP, SP, #196
+<span id="A080010ee">  0x080010EE:  </span>E8BD 8FF0    POP.W      {R4-R11, PC}
+<br/>.L37:
+<span id="A080010f2">  0x080010F2:  </span>F028 0103    BIC        R1, R8, #3
+<span id="A080010f6">  0x080010F6:  </span>2974         CMP        R1, #116
+<span id="A080010f8">  0x080010F8:  </span>BF08         IT         EQ
+<span id="A080010fa">  0x080010FA:  </span>F443 1380    ORREQ      R3, R3, #0x100000
+<span id="A080010fe">  0x080010FE:  </span>E6EC         B          .L13                     ; 0x08000EDA
+<br/>.L38:
+<span id="A08001100">  0x08001100:  </span>F4BF AF21    BCS.W      .L20                     ; 0x08000F46
+<br/>.L39:
+<span id="A08001104">  0x08001104:  </span>F04F 0E01    MOV.W      LR, #1
+<span id="A08001108">  0x08001108:  </span>2640         MOVS       R6, #64
+<span id="A0800110a">  0x0800110A:  </span>E70A         B          .L15                     ; 0x08000F22
+<br/>.L40:
+<span id="A0800110c">  0x0800110C:  </span>B672         CPSID      i
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.main from charger_lto.o, size=1566, align=2">Section .text.main from charger_lto.o, size=1566, align=2</h2>
+<pre>
+<br/><span id=" yÑ
+D">main:</span>
+<span id="A0800110e">  0x0800110E:  </span>B0AE         SUB        SP, SP, #184
+<span id="A08001110">  0x08001110:  </span>F64E 540C    MOVW       R4, #0xED0C
+<span id="A08001114">  0x08001114:  </span>F3BF 8F5F    DMB        SY
+<span id="A08001118">  0x08001118:  </span>F2CE 0400    MOVT       R4, #0xE000
+<span id="A0800111c">  0x0800111C:  </span>69A0         LDR        R0, [R4, #24]
+<span id="A0800111e">  0x0800111E:  </span>F420 3080    BIC        R0, R0, #0x010000
+<span id="A08001122">  0x08001122:  </span>61A0         STR        R0, [R4, #24]
+<span id="A08001124">  0x08001124:  </span>2000         MOVS       R0, #0
+<span id="A08001126">  0x08001126:  </span>F8C4 0088    STR.W      R0, [R4, #136]
+<span id="A0800112a">  0x0800112A:  </span>F8C4 008C    STR.W      R0, [R4, #140]
+<span id="A0800112e">  0x0800112E:  </span>F8D4 1094    LDR.W      R1, [R4, #148]
+<span id="A08001132">  0x08001132:  </span>F021 0101    BIC        R1, R1, #1
+<span id="A08001136">  0x08001136:  </span>F8C4 1094    STR.W      R1, [R4, #148]
+<span id="A0800113a">  0x0800113A:  </span>F248 713F    MOVW       R1, #0x873F
+<span id="A0800113e">  0x0800113E:  </span>F8C4 0090    STR.W      R0, [R4, #144]
+<span id="A08001142">  0x08001142:  </span>F2C1 0104    MOVT       R1, #0x1004
+<span id="A08001146">  0x08001146:  </span>F8C4 1094    STR.W      R1, [R4, #148]
+<span id="A0800114a">  0x0800114A:  </span>2105         MOVS       R1, #5
+<span id="A0800114c">  0x0800114C:  </span>F8C4 1088    STR.W      R1, [R4, #136]
+<span id="A08001150">  0x08001150:  </span>69A1         LDR        R1, [R4, #24]
+<span id="A08001152">  0x08001152:  </span>F441 3180    ORR        R1, R1, #0x010000
+<span id="A08001156">  0x08001156:  </span>61A1         STR        R1, [R4, #24]
+<span id="A08001158">  0x08001158:  </span>F3BF 8F4F    DSB        SY
+<span id="A0800115c">  0x0800115C:  </span>F3BF 8F6F    ISB        SY
+<span id="A08001160">  0x08001160:  </span>68A1         LDR        R1, [R4, #8]
+<span id="A08001162">  0x08001162:  </span>0389         LSLS       R1, R1, #14
+<span id="A08001164">  0x08001164:  </span>D411         BMI        .L1                      ; 0x0800118A
+<span id="A08001166">  0x08001166:  </span>F3BF 8F4F    DSB        SY
+<span id="A0800116a">  0x0800116A:  </span>F3BF 8F6F    ISB        SY
+<span id="A0800116e">  0x0800116E:  </span>F8C4 0244    STR.W      R0, [R4, #0x0244]
+<span id="A08001172">  0x08001172:  </span>F3BF 8F4F    DSB        SY
+<span id="A08001176">  0x08001176:  </span>F3BF 8F6F    ISB        SY
+<span id="A0800117a">  0x0800117A:  </span>68A0         LDR        R0, [R4, #8]
+<span id="A0800117c">  0x0800117C:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A08001180">  0x08001180:  </span>60A0         STR        R0, [R4, #8]
+<span id="A08001182">  0x08001182:  </span>F3BF 8F4F    DSB        SY
+<span id="A08001186">  0x08001186:  </span>F3BF 8F6F    ISB        SY
+<br/>.L1:
+<span id="A0800118a">  0x0800118A:  </span>68A0         LDR        R0, [R4, #8]
+<span id="A0800118c">  0x0800118C:  </span>03C0         LSLS       R0, R0, #15
+<span id="A0800118e">  0x0800118E:  </span>D425         BMI        .L4                      ; 0x080011DC
+<span id="A08001190">  0x08001190:  </span>2000         MOVS       R0, #0
+<span id="A08001192">  0x08001192:  </span>67A0         STR        R0, [R4, #120]
+<span id="A08001194">  0x08001194:  </span>F3BF 8F4F    DSB        SY
+<span id="A08001198">  0x08001198:  </span>F643 77E0    MOVW       R7, #0x3FE0
+<span id="A0800119c">  0x0800119C:  </span>6F61         LDR        R1, [R4, #116]
+<span id="A0800119e">  0x0800119E:  </span>F3C1 304E    UBFX       R0, R1, #13, #15
+<span id="A080011a2">  0x080011A2:  </span>F3C1 02C9    UBFX       R2, R1, #3, #10
+<span id="A080011a6">  0x080011A6:  </span>08C9         LSRS       R1, R1, #3
+<span id="A080011a8">  0x080011A8:  </span>1C55         ADDS       R5, R2, #1
+<span id="A080011aa">  0x080011AA:  </span>0143         LSLS       R3, R0, #5
+<br/>.L2:
+<span id="A080011ac">  0x080011AC:  </span>EA03 0207    AND.W      R2, R3, R7
+<span id="A080011b0">  0x080011B0:  </span>EB02 7681    ADD.W      R6, R2, R1, LSL #30
+<span id="A080011b4">  0x080011B4:  </span>462A         MOV        R2, R5
+<br/>.L3:
+<span id="A080011b6">  0x080011B6:  </span>3A01         SUBS       R2, #1
+<span id="A080011b8">  0x080011B8:  </span>F8C4 6254    STR.W      R6, [R4, #0x0254]
+<span id="A080011bc">  0x080011BC:  </span>F106 4640    ADD.W      R6, R6, #0xC0000000
+<span id="A080011c0">  0x080011C0:  </span>D1F9         BNE        .L3                      ; 0x080011B6
+<span id="A080011c2">  0x080011C2:  </span>3B20         SUBS       R3, #32
+<span id="A080011c4">  0x080011C4:  </span>3801         SUBS       R0, #1
+<span id="A080011c6">  0x080011C6:  </span>D2F1         BCS        .L2                      ; 0x080011AC
+<span id="A080011c8">  0x080011C8:  </span>F3BF 8F4F    DSB        SY
+<span id="A080011cc">  0x080011CC:  </span>68A0         LDR        R0, [R4, #8]
+<span id="A080011ce">  0x080011CE:  </span>F440 3080    ORR        R0, R0, #0x010000
+<span id="A080011d2">  0x080011D2:  </span>60A0         STR        R0, [R4, #8]
+<span id="A080011d4">  0x080011D4:  </span>F3BF 8F4F    DSB        SY
+<span id="A080011d8">  0x080011D8:  </span>F3BF 8F6F    ISB        SY
+<br/>.L4:
+<span id="A080011dc">  0x080011DC:  </span>6820         LDR        R0, [R4]
+<span id="A080011de">  0x080011DE:  </span>F64F 01FF    MOVW       R1, #0xF8FF
+<span id="A080011e2">  0x080011E2:  </span>4008         ANDS       R0, R1
+<span id="A080011e4">  0x080011E4:  </span>F240 3100    MOVW       R1, #0x0300
+<span id="A080011e8">  0x080011E8:  </span>F244 4500    MOVW       R5, #0x4400
+<span id="A080011ec">  0x080011EC:  </span>F2C0 51FA    MOVT       R1, #0x05FA
+<span id="A080011f0">  0x080011F0:  </span>F6C5 0502    MOVT       R5, #0x5802
+<span id="A080011f4">  0x080011F4:  </span>4308         ORRS       R0, R1
+<span id="A080011f6">  0x080011F6:  </span>6020         STR        R0, [R4]
+<span id="A080011f8">  0x080011F8:  </span>F7FF F868    BL         <a href="#Pf­D">HAL_RCC_GetSysClockFreq</a>  ; 0x080002CC
+<span id="A080011fc">  0x080011FC:  </span>69A9         LDR        R1, [R5, #24]
+<span id="A080011fe">  0x080011FE:  </span>F242 3724    MOVW       R7, #0x2324              ; 0x08002324 = D1CorePrescTable
+<span id="A08001202">  0x08001202:  </span>F6C0 0700    MOVT       R7, #0x0800              ; 0x08002324 = D1CorePrescTable
+<span id="A08001206">  0x08001206:  </span>F240 182C    MOVW       R8, #0x012C              ; 0x3000012C = SystemCoreClock
+<span id="A0800120a">  0x0800120A:  </span>F3C1 2103    UBFX       R1, R1, #8, #4
+<span id="A0800120e">  0x0800120E:  </span>F2C3 0800    MOVT       R8, #0x3000              ; 0x3000012C = SystemCoreClock
+<span id="A08001212">  0x08001212:  </span>5C79         LDRB       R1, [R7, R1]
+<span id="A08001214">  0x08001214:  </span>F001 011F    AND        R1, R1, #31
+<span id="A08001218">  0x08001218:  </span>40C8         LSRS       R0, R1
+<span id="A0800121a">  0x0800121A:  </span>69A9         LDR        R1, [R5, #24]
+<span id="A0800121c">  0x0800121C:  </span>F8C8 0000    STR.W      R0, [R8]
+<span id="A08001220">  0x08001220:  </span>200F         MOVS       R0, #15
+<span id="A08001222">  0x08001222:  </span>F000 FC13    BL         <a href="# ô]oÛ">HAL_InitTick</a>             ; 0x08001A4C
+<span id="A08001226">  0x08001226:  </span>B958         CBNZ       R0, .L5                  ; 0x08001240
+<span id="A08001228">  0x08001228:  </span>F8D5 00F4    LDR.W      R0, [R5, #244]
+<span id="A0800122c">  0x0800122C:  </span>F040 0002    ORR        R0, R0, #2
+<span id="A08001230">  0x08001230:  </span>F8C5 00F4    STR.W      R0, [R5, #244]
+<span id="A08001234">  0x08001234:  </span>F8D5 00F4    LDR.W      R0, [R5, #244]
+<span id="A08001238">  0x08001238:  </span>F000 0002    AND        R0, R0, #2
+<span id="A0800123c">  0x0800123C:  </span>9000         STR        R0, [SP, #0]
+<span id="A0800123e">  0x0800123E:  </span>9800         LDR        R0, [SP, #0]
+<br/>.L5:
+<span id="A08001240">  0x08001240:  </span>F205 400C    ADDW       R0, R5, #0x040C
+<span id="A08001244">  0x08001244:  </span>F240 1624    MOVW       R6, #0x0124              ; 0x30000124 = uwTick
+<span id="A08001248">  0x08001248:  </span>F2C3 0600    MOVT       R6, #0x3000              ; 0x30000124 = uwTick
+<span id="A0800124c">  0x0800124C:  </span>6801         LDR        R1, [R0]
+<span id="A0800124e">  0x0800124E:  </span>0749         LSLS       R1, R1, #29
+<span id="A08001250">  0x08001250:  </span>6801         LDR        R1, [R0]
+<span id="A08001252">  0x08001252:  </span>D50D         BPL        .L7                      ; 0x08001270
+<span id="A08001254">  0x08001254:  </span>2202         MOVS       R2, #2
+<span id="A08001256">  0x08001256:  </span>F362 0102    BFI        R1, R2, #0, #3
+<span id="A0800125a">  0x0800125A:  </span>6001         STR        R1, [R0]
+<span id="A0800125c">  0x0800125C:  </span>6831         LDR        R1, [R6]
+<br/>.L6:
+<span id="A0800125e">  0x0800125E:  </span>F850 2C08    LDR        R2, [R0, #-8]
+<span id="A08001262">  0x08001262:  </span>0492         LSLS       R2, R2, #18
+<span id="A08001264">  0x08001264:  </span>D404         BMI        .L7                      ; 0x08001270
+<span id="A08001266">  0x08001266:  </span>6832         LDR        R2, [R6]
+<span id="A08001268">  0x08001268:  </span>1A52         SUBS       R2, R2, R1
+<span id="A0800126a">  0x0800126A:  </span>F5B2 7F7A    CMP.W      R2, #0x03E8
+<span id="A0800126e">  0x0800126E:  </span>D9F6         BLS        .L6                      ; 0x0800125E
+<br/>.L7:
+<span id="A08001270">  0x08001270:  </span>2100         MOVS       R1, #0
+<span id="A08001272">  0x08001272:  </span>9100         STR        R1, [SP, #0]
+<span id="A08001274">  0x08001274:  </span>68C1         LDR        R1, [R0, #12]
+<span id="A08001276">  0x08001276:  </span>2202         MOVS       R2, #2
+<span id="A08001278">  0x08001278:  </span>F362 318F    BFI        R1, R2, #14, #2
+<span id="A0800127c">  0x0800127C:  </span>60C1         STR        R1, [R0, #12]
+<span id="A0800127e">  0x0800127E:  </span>68C1         LDR        R1, [R0, #12]
+<span id="A08001280">  0x08001280:  </span>F401 4140    AND        R1, R1, #0xC000
+<span id="A08001284">  0x08001284:  </span>9100         STR        R1, [SP, #0]
+<span id="A08001286">  0x08001286:  </span>9900         LDR        R1, [SP, #0]
+<br/>.L8:
+<span id="A08001288">  0x08001288:  </span>68C1         LDR        R1, [R0, #12]
+<span id="A0800128a">  0x0800128A:  </span>0489         LSLS       R1, R1, #18
+<span id="A0800128c">  0x0800128C:  </span>D5FC         BPL        .L8                      ; 0x08001288
+<span id="A0800128e">  0x0800128E:  </span>F8D5 0400    LDR.W      R0, [R5, #0x0400]
+<span id="A08001292">  0x08001292:  </span>F440 7080    ORR        R0, R0, #0x0100
+<span id="A08001296">  0x08001296:  </span>F8C5 0400    STR.W      R0, [R5, #0x0400]
+<span id="A0800129a">  0x0800129A:  </span>6F28         LDR        R0, [R5, #112]
+<span id="A0800129c">  0x0800129C:  </span>F020 0018    BIC        R0, R0, #24
+<span id="A080012a0">  0x080012A0:  </span>6728         STR        R0, [R5, #112]
+<span id="A080012a2">  0x080012A2:  </span>6928         LDR        R0, [R5, #16]
+<span id="A080012a4">  0x080012A4:  </span>F000 0138    AND        R1, R0, #56
+<span id="A080012a8">  0x080012A8:  </span>6AA8         LDR        R0, [R5, #40]
+<span id="A080012aa">  0x080012AA:  </span>2910         CMP        R1, #16
+<span id="A080012ac">  0x080012AC:  </span>D007         BEQ        .L9                      ; 0x080012BE
+<span id="A080012ae">  0x080012AE:  </span>2918         CMP        R1, #24
+<span id="A080012b0">  0x080012B0:  </span>F040 816C    BNE.W      .L28                     ; 0x0800158C
+<span id="A080012b4">  0x080012B4:  </span>F000 0003    AND        R0, R0, #3
+<span id="A080012b8">  0x080012B8:  </span>2802         CMP        R0, #2
+<span id="A080012ba">  0x080012BA:  </span>F040 8167    BNE.W      .L28                     ; 0x0800158C
+<br/>.L9:
+<span id="A080012be">  0x080012BE:  </span>6828         LDR        R0, [R5]
+<br/>.L10:
+<span id="A080012c0">  0x080012C0:  </span>F8D5 0400    LDR.W      R0, [R5, #0x0400]
+<span id="A080012c4">  0x080012C4:  </span>F440 7080    ORR        R0, R0, #0x0100
+<span id="A080012c8">  0x080012C8:  </span>F8C5 0400    STR.W      R0, [R5, #0x0400]
+<span id="A080012cc">  0x080012CC:  </span>6830         LDR        R0, [R6]
+<br/>.L11:
+<span id="A080012ce">  0x080012CE:  </span>F8D5 1400    LDR.W      R1, [R5, #0x0400]
+<span id="A080012d2">  0x080012D2:  </span>05C9         LSLS       R1, R1, #23
+<span id="A080012d4">  0x080012D4:  </span>D404         BMI        .L12                     ; 0x080012E0
+<span id="A080012d6">  0x080012D6:  </span>6831         LDR        R1, [R6]
+<span id="A080012d8">  0x080012D8:  </span>1A09         SUBS       R1, R1, R0
+<span id="A080012da">  0x080012DA:  </span>2964         CMP        R1, #100
+<span id="A080012dc">  0x080012DC:  </span>D9F7         BLS        .L11                     ; 0x080012CE
+<span id="A080012de">  0x080012DE:  </span>E1AA         B          .L34                     ; 0x08001636
+<br/>.L12:
+<span id="A080012e0">  0x080012E0:  </span>6F28         LDR        R0, [R5, #112]
+<span id="A080012e2">  0x080012E2:  </span>F241 3188    MOVW       R1, #0x1388
+<span id="A080012e6">  0x080012E6:  </span>F040 0001    ORR        R0, R0, #1
+<span id="A080012ea">  0x080012EA:  </span>6728         STR        R0, [R5, #112]
+<span id="A080012ec">  0x080012EC:  </span>6830         LDR        R0, [R6]
+<br/>.L13:
+<span id="A080012ee">  0x080012EE:  </span>6F2A         LDR        R2, [R5, #112]
+<span id="A080012f0">  0x080012F0:  </span>0792         LSLS       R2, R2, #30
+<span id="A080012f2">  0x080012F2:  </span>D404         BMI        .L14                     ; 0x080012FE
+<span id="A080012f4">  0x080012F4:  </span>6832         LDR        R2, [R6]
+<span id="A080012f6">  0x080012F6:  </span>1A12         SUBS       R2, R2, R0
+<span id="A080012f8">  0x080012F8:  </span>428A         CMP        R2, R1
+<span id="A080012fa">  0x080012FA:  </span>D9F8         BLS        .L13                     ; 0x080012EE
+<span id="A080012fc">  0x080012FC:  </span>E19B         B          .L34                     ; 0x08001636
+<br/>.L14:
+<span id="A080012fe">  0x080012FE:  </span>6928         LDR        R0, [R5, #16]
+<span id="A08001300">  0x08001300:  </span>F000 0038    AND        R0, R0, #56
+<span id="A08001304">  0x08001304:  </span>2818         CMP        R0, #24
+<span id="A08001306">  0x08001306:  </span>F040 814F    BNE.W      .L30                     ; 0x080015A8
+<span id="A0800130a">  0x0800130A:  </span>6AA8         LDR        R0, [R5, #40]
+<span id="A0800130c">  0x0800130C:  </span>F240 31F3    MOVW       R1, #0x03F3
+<span id="A08001310">  0x08001310:  </span>4008         ANDS       R0, R1
+<span id="A08001312">  0x08001312:  </span>2852         CMP        R0, #82
+<span id="A08001314">  0x08001314:  </span>6B28         LDR        R0, [R5, #48]
+<span id="A08001316">  0x08001316:  </span>F040 818E    BNE.W      .L34                     ; 0x08001636
+<span id="A0800131a">  0x0800131A:  </span>4601         MOV        R1, R0
+<span id="A0800131c">  0x0800131C:  </span>F36F 215F    BFC        R1, #9, #23
+<span id="A08001320">  0x08001320:  </span>2927         CMP        R1, #39
+<span id="A08001322">  0x08001322:  </span>F040 8188    BNE.W      .L34                     ; 0x08001636
+<span id="A08001326">  0x08001326:  </span>F400 417E    AND        R1, R0, #0xFE00
+<span id="A0800132a">  0x0800132A:  </span>F5B1 7F00    CMP.W      R1, #0x0200
+<span id="A0800132e">  0x0800132E:  </span>F040 8182    BNE.W      .L34                     ; 0x08001636
+<span id="A08001332">  0x08001332:  </span>F400 01FE    AND        R1, R0, #0x7F0000
+<span id="A08001336">  0x08001336:  </span>F5B1 3F80    CMP.W      R1, #0x010000
+<span id="A0800133a">  0x0800133A:  </span>F040 817C    BNE.W      .L34                     ; 0x08001636
+<span id="A0800133e">  0x0800133E:  </span>F000 40FE    AND        R0, R0, #0x7F000000
+<span id="A08001342">  0x08001342:  </span>F1B0 7F80    CMP.W      R0, #0x01000000
+<span id="A08001346">  0x08001346:  </span>F040 8176    BNE.W      .L34                     ; 0x08001636
+<span id="A0800134a">  0x0800134A:  </span>6B68         LDR        R0, [R5, #52]
+<span id="A0800134c">  0x0800134C:  </span>F64F 71F8    MOVW       R1, #0xFFF8
+<span id="A08001350">  0x08001350:  </span>4208         TST        R0, R1
+<span id="A08001352">  0x08001352:  </span>D010         BEQ        .L16                     ; 0x08001376
+<span id="A08001354">  0x08001354:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A08001356">  0x08001356:  </span>F020 0001    BIC        R0, R0, #1
+<span id="A0800135a">  0x0800135A:  </span>62E8         STR        R0, [R5, #44]
+<span id="A0800135c">  0x0800135C:  </span>6830         LDR        R0, [R6]
+<br/>.L15:
+<span id="A0800135e">  0x0800135E:  </span>6831         LDR        R1, [R6]
+<span id="A08001360">  0x08001360:  </span>4281         CMP        R1, R0
+<span id="A08001362">  0x08001362:  </span>D0FC         BEQ        .L15                     ; 0x0800135E
+<span id="A08001364">  0x08001364:  </span>6B68         LDR        R0, [R5, #52]
+<span id="A08001366">  0x08001366:  </span>F64F 71F8    MOVW       R1, #0xFFF8
+<span id="A0800136a">  0x0800136A:  </span>4388         BICS       R0, R1
+<span id="A0800136c">  0x0800136C:  </span>6368         STR        R0, [R5, #52]
+<span id="A0800136e">  0x0800136E:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A08001370">  0x08001370:  </span>F040 0001    ORR        R0, R0, #1
+<span id="A08001374">  0x08001374:  </span>62E8         STR        R0, [R5, #44]
+<br/>.L16:
+<span id="A08001376">  0x08001376:  </span>F242 0000    MOVW       R0, #0x2000
+<span id="A0800137a">  0x0800137A:  </span>F2C5 2000    MOVT       R0, #0x5200
+<span id="A0800137e">  0x0800137E:  </span>6801         LDR        R1, [R0]
+<span id="A08001380">  0x08001380:  </span>0709         LSLS       R1, R1, #28
+<span id="A08001382">  0x08001382:  </span>D10A         BNE        .L17                     ; 0x0800139A
+<span id="A08001384">  0x08001384:  </span>6801         LDR        R1, [R0]
+<span id="A08001386">  0x08001386:  </span>2201         MOVS       R2, #1
+<span id="A08001388">  0x08001388:  </span>F362 0103    BFI        R1, R2, #0, #4
+<span id="A0800138c">  0x0800138C:  </span>6001         STR        R1, [R0]
+<span id="A0800138e">  0x0800138E:  </span>6801         LDR        R1, [R0]
+<span id="A08001390">  0x08001390:  </span>F001 010F    AND        R1, R1, #15
+<span id="A08001394">  0x08001394:  </span>2901         CMP        R1, #1
+<span id="A08001396">  0x08001396:  </span>F040 81C7    BNE.W      .L41                     ; 0x08001728
+<br/>.L17:
+<span id="A0800139a">  0x0800139A:  </span>69A9         LDR        R1, [R5, #24]
+<span id="A0800139c">  0x0800139C:  </span>69E9         LDR        R1, [R5, #28]
+<span id="A0800139e">  0x0800139E:  </span>69E9         LDR        R1, [R5, #28]
+<span id="A080013a0">  0x080013A0:  </span>6A29         LDR        R1, [R5, #32]
+<span id="A080013a2">  0x080013A2:  </span>69A9         LDR        R1, [R5, #24]
+<span id="A080013a4">  0x080013A4:  </span>69A9         LDR        R1, [R5, #24]
+<span id="A080013a6">  0x080013A6:  </span>F421 6170    BIC        R1, R1, #0x0F00
+<span id="A080013aa">  0x080013AA:  </span>61A9         STR        R1, [R5, #24]
+<span id="A080013ac">  0x080013AC:  </span>6829         LDR        R1, [R5]
+<span id="A080013ae">  0x080013AE:  </span>0189         LSLS       R1, R1, #6
+<span id="A080013b0">  0x080013B0:  </span>F140 81BA    BPL.W      .L41                     ; 0x08001728
+<span id="A080013b4">  0x080013B4:  </span>6929         LDR        R1, [R5, #16]
+<span id="A080013b6">  0x080013B6:  </span>2203         MOVS       R2, #3
+<span id="A080013b8">  0x080013B8:  </span>F362 0102    BFI        R1, R2, #0, #3
+<span id="A080013bc">  0x080013BC:  </span>6129         STR        R1, [R5, #16]
+<span id="A080013be">  0x080013BE:  </span>6831         LDR        R1, [R6]
+<span id="A080013c0">  0x080013C0:  </span>F241 3288    MOVW       R2, #0x1388
+<br/>.L18:
+<span id="A080013c4">  0x080013C4:  </span>692B         LDR        R3, [R5, #16]
+<span id="A080013c6">  0x080013C6:  </span>F003 0338    AND        R3, R3, #56
+<span id="A080013ca">  0x080013CA:  </span>2B18         CMP        R3, #24
+<span id="A080013cc">  0x080013CC:  </span>D004         BEQ        .L19                     ; 0x080013D8
+<span id="A080013ce">  0x080013CE:  </span>6833         LDR        R3, [R6]
+<span id="A080013d0">  0x080013D0:  </span>1A5B         SUBS       R3, R3, R1
+<span id="A080013d2">  0x080013D2:  </span>4293         CMP        R3, R2
+<span id="A080013d4">  0x080013D4:  </span>D9F6         BLS        .L18                     ; 0x080013C4
+<span id="A080013d6">  0x080013D6:  </span>E1A7         B          .L41                     ; 0x08001728
+<br/>.L19:
+<span id="A080013d8">  0x080013D8:  </span>69A9         LDR        R1, [R5, #24]
+<span id="A080013da">  0x080013DA:  </span>0709         LSLS       R1, R1, #28
+<span id="A080013dc">  0x080013DC:  </span>D003         BEQ        .L20                     ; 0x080013E6
+<span id="A080013de">  0x080013DE:  </span>69A9         LDR        R1, [R5, #24]
+<span id="A080013e0">  0x080013E0:  </span>F021 010F    BIC        R1, R1, #15
+<span id="A080013e4">  0x080013E4:  </span>61A9         STR        R1, [R5, #24]
+<br/>.L20:
+<span id="A080013e6">  0x080013E6:  </span>6801         LDR        R1, [R0]
+<span id="A080013e8">  0x080013E8:  </span>F011 0F0E    TST        R1, #14
+<span id="A080013ec">  0x080013EC:  </span>D00A         BEQ        .L21                     ; 0x08001404
+<span id="A080013ee">  0x080013EE:  </span>6801         LDR        R1, [R0]
+<span id="A080013f0">  0x080013F0:  </span>2201         MOVS       R2, #1
+<span id="A080013f2">  0x080013F2:  </span>F362 0103    BFI        R1, R2, #0, #4
+<span id="A080013f6">  0x080013F6:  </span>6001         STR        R1, [R0]
+<span id="A080013f8">  0x080013F8:  </span>6800         LDR        R0, [R0]
+<span id="A080013fa">  0x080013FA:  </span>F000 000F    AND        R0, R0, #15
+<span id="A080013fe">  0x080013FE:  </span>2801         CMP        R0, #1
+<span id="A08001400">  0x08001400:  </span>F040 8192    BNE.W      .L41                     ; 0x08001728
+<br/>.L21:
+<span id="A08001404">  0x08001404:  </span>69A8         LDR        R0, [R5, #24]
+<span id="A08001406">  0x08001406:  </span>F010 0F70    TST        R0, #112
+<span id="A0800140a">  0x0800140A:  </span>D003         BEQ        .L22                     ; 0x08001414
+<span id="A0800140c">  0x0800140C:  </span>69A8         LDR        R0, [R5, #24]
+<span id="A0800140e">  0x0800140E:  </span>F020 0070    BIC        R0, R0, #112
+<span id="A08001412">  0x08001412:  </span>61A8         STR        R0, [R5, #24]
+<br/>.L22:
+<span id="A08001414">  0x08001414:  </span>69E8         LDR        R0, [R5, #28]
+<span id="A08001416">  0x08001416:  </span>F010 0F70    TST        R0, #112
+<span id="A0800141a">  0x0800141A:  </span>D003         BEQ        .L23                     ; 0x08001424
+<span id="A0800141c">  0x0800141C:  </span>69E8         LDR        R0, [R5, #28]
+<span id="A0800141e">  0x0800141E:  </span>F020 0070    BIC        R0, R0, #112
+<span id="A08001422">  0x08001422:  </span>61E8         STR        R0, [R5, #28]
+<br/>.L23:
+<span id="A08001424">  0x08001424:  </span>69E8         LDR        R0, [R5, #28]
+<span id="A08001426">  0x08001426:  </span>F410 6FE0    TST        R0, #0x0700
+<span id="A0800142a">  0x0800142A:  </span>D003         BEQ        .L24                     ; 0x08001434
+<span id="A0800142c">  0x0800142C:  </span>69E8         LDR        R0, [R5, #28]
+<span id="A0800142e">  0x0800142E:  </span>F420 60E0    BIC        R0, R0, #0x0700
+<span id="A08001432">  0x08001432:  </span>61E8         STR        R0, [R5, #28]
+<br/>.L24:
+<span id="A08001434">  0x08001434:  </span>6A28         LDR        R0, [R5, #32]
+<span id="A08001436">  0x08001436:  </span>F010 0F70    TST        R0, #112
+<span id="A0800143a">  0x0800143A:  </span>D003         BEQ        .L25                     ; 0x08001444
+<span id="A0800143c">  0x0800143C:  </span>6A28         LDR        R0, [R5, #32]
+<span id="A0800143e">  0x0800143E:  </span>F020 0070    BIC        R0, R0, #112
+<span id="A08001442">  0x08001442:  </span>6228         STR        R0, [R5, #32]
+<br/>.L25:
+<span id="A08001444">  0x08001444:  </span>F7FE FF42    BL         <a href="#e­D">HAL_RCC_GetSysClockFreq</a>  ; 0x080002CC
+<span id="A08001448">  0x08001448:  </span>69A9         LDR        R1, [R5, #24]
+<span id="A0800144a">  0x0800144A:  </span>F240 1228    MOVW       R2, #0x0128              ; 0x30000128 = uwTickPrio
+<span id="A0800144e">  0x0800144E:  </span>F2C3 0200    MOVT       R2, #0x3000              ; 0x30000128 = uwTickPrio
+<span id="A08001452">  0x08001452:  </span>F3C1 2103    UBFX       R1, R1, #8, #4
+<span id="A08001456">  0x08001456:  </span>5C79         LDRB       R1, [R7, R1]
+<span id="A08001458">  0x08001458:  </span>69AB         LDR        R3, [R5, #24]
+<span id="A0800145a">  0x0800145A:  </span>7812         LDRB       R2, [R2]
+<span id="A0800145c">  0x0800145C:  </span>F001 011F    AND        R1, R1, #31
+<span id="A08001460">  0x08001460:  </span>FA20 F101    LSR.W      R1, R0, R1
+<span id="A08001464">  0x08001464:  </span>2010         MOVS       R0, #16
+<span id="A08001466">  0x08001466:  </span>2A00         CMP        R2, #0
+<span id="A08001468">  0x08001468:  </span>F8C8 1000    STR.W      R1, [R8]
+<span id="A0800146c">  0x0800146C:  </span>BF18         IT         NE
+<span id="A0800146e">  0x0800146E:  </span>200F         MOVNE      R0, #15
+<span id="A08001470">  0x08001470:  </span>F000 FAEC    BL         <a href="# ô]oÛ">HAL_InitTick</a>             ; 0x08001A4C
+<span id="A08001474">  0x08001474:  </span>2800         CMP        R0, #0
+<span id="A08001476">  0x08001476:  </span>F040 8157    BNE.W      .L41                     ; 0x08001728
+<span id="A0800147a">  0x0800147A:  </span>F8D5 00E0    LDR.W      R0, [R5, #224]
+<span id="A0800147e">  0x0800147E:  </span>F240 1704    MOVW       R7, #0x0104              ; 0x30000100 = hrtc
+<span id="A08001482">  0x08001482:  </span>F040 0004    ORR        R0, R0, #4
+<span id="A08001486">  0x08001486:  </span>F8C5 00E0    STR.W      R0, [R5, #224]
+<span id="A0800148a">  0x0800148A:  </span>F8D5 00E0    LDR.W      R0, [R5, #224]
+<span id="A0800148e">  0x0800148E:  </span>F244 0808    MOVW       R8, #0x4008
+<span id="A08001492">  0x08001492:  </span>F000 0004    AND        R0, R0, #4
+<span id="A08001496">  0x08001496:  </span>9000         STR        R0, [SP, #0]
+<span id="A08001498">  0x08001498:  </span>9800         LDR        R0, [SP, #0]
+<span id="A0800149a">  0x0800149A:  </span>F44F 6100    MOV.W      R1, #0x0800
+<span id="A0800149e">  0x0800149E:  </span>F8D5 00E0    LDR.W      R0, [R5, #224]
+<span id="A080014a2">  0x080014A2:  </span>F2C3 0700    MOVT       R7, #0x3000              ; 0x30000100 = hrtc
+<span id="A080014a6">  0x080014A6:  </span>F040 0080    ORR        R0, R0, #128
+<span id="A080014aa">  0x080014AA:  </span>F8C5 00E0    STR.W      R0, [R5, #224]
+<span id="A080014ae">  0x080014AE:  </span>F8D5 00E0    LDR.W      R0, [R5, #224]
+<span id="A080014b2">  0x080014B2:  </span>F6C5 0800    MOVT       R8, #0x5800
+<span id="A080014b6">  0x080014B6:  </span>F000 0080    AND        R0, R0, #128
+<span id="A080014ba">  0x080014BA:  </span>9000         STR        R0, [SP, #0]
+<span id="A080014bc">  0x080014BC:  </span>9800         LDR        R0, [SP, #0]
+<span id="A080014be">  0x080014BE:  </span>F8D5 00E0    LDR.W      R0, [R5, #224]
+<span id="A080014c2">  0x080014C2:  </span>F040 0010    ORR        R0, R0, #16
+<span id="A080014c6">  0x080014C6:  </span>F8C5 00E0    STR.W      R0, [R5, #224]
+<span id="A080014ca">  0x080014CA:  </span>F8D5 00E0    LDR.W      R0, [R5, #224]
+<span id="A080014ce">  0x080014CE:  </span>F000 0010    AND        R0, R0, #16
+<span id="A080014d2">  0x080014D2:  </span>9000         STR        R0, [SP, #0]
+<span id="A080014d4">  0x080014D4:  </span>9800         LDR        R0, [SP, #0]
+<span id="A080014d6">  0x080014D6:  </span>F8D5 00D8    LDR.W      R0, [R5, #216]
+<span id="A080014da">  0x080014DA:  </span>F040 0001    ORR        R0, R0, #1
+<span id="A080014de">  0x080014DE:  </span>F8C5 00D8    STR.W      R0, [R5, #216]
+<span id="A080014e2">  0x080014E2:  </span>F8D5 00D8    LDR.W      R0, [R5, #216]
+<span id="A080014e6">  0x080014E6:  </span>F000 0001    AND        R0, R0, #1
+<span id="A080014ea">  0x080014EA:  </span>9000         STR        R0, [SP, #0]
+<span id="A080014ec">  0x080014EC:  </span>9800         LDR        R0, [SP, #0]
+<span id="A080014ee">  0x080014EE:  </span>6820         LDR        R0, [R4]
+<span id="A080014f0">  0x080014F0:  </span>F24E 400B    MOVW       R0, #0xE40B
+<span id="A080014f4">  0x080014F4:  </span>2400         MOVS       R4, #0
+<span id="A080014f6">  0x080014F6:  </span>F2CE 0000    MOVT       R0, #0xE000
+<span id="A080014fa">  0x080014FA:  </span>7004         STRB       R4, [R0]
+<span id="A080014fc">  0x080014FC:  </span>F24E 1000    MOVW       R0, #0xE100
+<span id="A08001500">  0x08001500:  </span>F2CE 0000    MOVT       R0, #0xE000
+<span id="A08001504">  0x08001504:  </span>6001         STR        R1, [R0]
+<span id="A08001506">  0x08001506:  </span>217F         MOVS       R1, #127
+<span id="A08001508">  0x08001508:  </span>F1A8 0008    SUB.W      R0, R8, #8
+<span id="A0800150c">  0x0800150C:  </span>E947 0401    STRD       R0, R4, [R7, #-4]
+<span id="A08001510">  0x08001510:  </span>6079         STR        R1, [R7, #4]
+<span id="A08001512">  0x08001512:  </span>21FF         MOVS       R1, #255
+<span id="A08001514">  0x08001514:  </span>E9C7 1402    STRD       R1, R4, [R7, #8]
+<span id="A08001518">  0x08001518:  </span>E9C7 4404    STRD       R4, R4, [R7, #16]
+<span id="A0800151c">  0x0800151C:  </span>61BC         STR        R4, [R7, #24]
+<span id="A0800151e">  0x0800151E:  </span>7F79         LDRB       R1, [R7, #29]
+<span id="A08001520">  0x08001520:  </span>B9B9         CBNZ       R1, .L26                 ; 0x08001552
+<span id="A08001522">  0x08001522:  </span>A802         ADD        R0, SP, #8
+<span id="A08001524">  0x08001524:  </span>21B0         MOVS       R1, #176
+<span id="A08001526">  0x08001526:  </span>773C         STRB       R4, [R7, #28]
+<span id="A08001528">  0x08001528:  </span>F7FF FB7A    BL         <a href="# ô]oÛ">__aeabi_memclr</a>           ; 0x08000C20
+<span id="A0800152c">  0x0800152C:  </span>F44F 0080    MOV.W      R0, #0x400000
+<span id="A08001530">  0x08001530:  </span>E9CD 0400    STRD       R0, R4, [SP]
+<span id="A08001534">  0x08001534:  </span>F44F 7080    MOV.W      R0, #0x0100
+<span id="A08001538">  0x08001538:  </span>902C         STR        R0, [SP, #176]
+<span id="A0800153a">  0x0800153A:  </span>4668         MOV        R0, SP
+<span id="A0800153c">  0x0800153C:  </span>F7FE FF4C    BL         <a href="#Àh­D">HAL_RCCEx_PeriphCLKConfig</a> ; 0x080003D8
+<span id="A08001540">  0x08001540:  </span>2800         CMP        R0, #0
+<span id="A08001542">  0x08001542:  </span>F040 80F2    BNE.W      .L42                     ; 0x0800172A
+<span id="A08001546">  0x08001546:  </span>6F28         LDR        R0, [R5, #112]
+<span id="A08001548">  0x08001548:  </span>F440 4000    ORR        R0, R0, #0x8000
+<span id="A0800154c">  0x0800154C:  </span>6728         STR        R0, [R5, #112]
+<span id="A0800154e">  0x0800154E:  </span>F857 0C04    LDR        R0, [R7, #-4]
+<br/>.L26:
+<span id="A08001552">  0x08001552:  </span>2102         MOVS       R1, #2
+<span id="A08001554">  0x08001554:  </span>7779         STRB       R1, [R7, #29]
+<span id="A08001556">  0x08001556:  </span>68C1         LDR        R1, [R0, #12]
+<span id="A08001558">  0x08001558:  </span>06C9         LSLS       R1, R1, #27
+<span id="A0800155a">  0x0800155A:  </span>F100 80B8    BMI.W      .L40                     ; 0x080016CE
+<span id="A0800155e">  0x0800155E:  </span>21CA         MOVS       R1, #202
+<span id="A08001560">  0x08001560:  </span>6241         STR        R1, [R0, #36]
+<span id="A08001562">  0x08001562:  </span>2153         MOVS       R1, #83
+<span id="A08001564">  0x08001564:  </span>6241         STR        R1, [R0, #36]
+<span id="A08001566">  0x08001566:  </span>68C1         LDR        R1, [R0, #12]
+<span id="A08001568">  0x08001568:  </span>0649         LSLS       R1, R1, #25
+<span id="A0800156a">  0x0800156A:  </span>D465         BMI        .L35                     ; 0x08001638
+<span id="A0800156c">  0x0800156C:  </span>F04F 31FF    MOV.W      R1, #0xFFFFFFFF
+<span id="A08001570">  0x08001570:  </span>60C1         STR        R1, [R0, #12]
+<span id="A08001572">  0x08001572:  </span>6831         LDR        R1, [R6]
+<br/>.L27:
+<span id="A08001574">  0x08001574:  </span>68C2         LDR        R2, [R0, #12]
+<span id="A08001576">  0x08001576:  </span>0652         LSLS       R2, R2, #25
+<span id="A08001578">  0x08001578:  </span>D45E         BMI        .L35                     ; 0x08001638
+<span id="A0800157a">  0x0800157A:  </span>6832         LDR        R2, [R6]
+<span id="A0800157c">  0x0800157C:  </span>1A52         SUBS       R2, R2, R1
+<span id="A0800157e">  0x0800157E:  </span>F5B2 7F7A    CMP.W      R2, #0x03E8
+<span id="A08001582">  0x08001582:  </span>D9F7         BLS        .L27                     ; 0x08001574
+<span id="A08001584">  0x08001584:  </span>2103         MOVS       R1, #3
+<span id="A08001586">  0x08001586:  </span>7779         STRB       R1, [R7, #29]
+<span id="A08001588">  0x08001588:  </span>68C0         LDR        R0, [R0, #12]
+<span id="A0800158a">  0x0800158A:  </span>E087         B          .L37                     ; 0x0800169C
+<br/>.L28:
+<span id="A0800158c">  0x0800158C:  </span>6828         LDR        R0, [R5]
+<span id="A0800158e">  0x0800158E:  </span>F440 3080    ORR        R0, R0, #0x010000
+<span id="A08001592">  0x08001592:  </span>6028         STR        R0, [R5]
+<span id="A08001594">  0x08001594:  </span>6830         LDR        R0, [R6]
+<br/>.L29:
+<span id="A08001596">  0x08001596:  </span>6829         LDR        R1, [R5]
+<span id="A08001598">  0x08001598:  </span>0389         LSLS       R1, R1, #14
+<span id="A0800159a">  0x0800159A:  </span>F53F AE91    BMI.W      .L10                     ; 0x080012C0
+<span id="A0800159e">  0x0800159E:  </span>6831         LDR        R1, [R6]
+<span id="A080015a0">  0x080015A0:  </span>1A09         SUBS       R1, R1, R0
+<span id="A080015a2">  0x080015A2:  </span>2964         CMP        R1, #100
+<span id="A080015a4">  0x080015A4:  </span>D9F7         BLS        .L29                     ; 0x08001596
+<span id="A080015a6">  0x080015A6:  </span>E046         B          .L34                     ; 0x08001636
+<br/>.L30:
+<span id="A080015a8">  0x080015A8:  </span>6828         LDR        R0, [R5]
+<span id="A080015aa">  0x080015AA:  </span>F020 7080    BIC        R0, R0, #0x01000000
+<span id="A080015ae">  0x080015AE:  </span>6028         STR        R0, [R5]
+<span id="A080015b0">  0x080015B0:  </span>6830         LDR        R0, [R6]
+<br/>.L31:
+<span id="A080015b2">  0x080015B2:  </span>6829         LDR        R1, [R5]
+<span id="A080015b4">  0x080015B4:  </span>0189         LSLS       R1, R1, #6
+<span id="A080015b6">  0x080015B6:  </span>D504         BPL        .L32                     ; 0x080015C2
+<span id="A080015b8">  0x080015B8:  </span>6831         LDR        R1, [R6]
+<span id="A080015ba">  0x080015BA:  </span>1A09         SUBS       R1, R1, R0
+<span id="A080015bc">  0x080015BC:  </span>2902         CMP        R1, #2
+<span id="A080015be">  0x080015BE:  </span>D9F8         BLS        .L31                     ; 0x080015B2
+<span id="A080015c0">  0x080015C0:  </span>E039         B          .L34                     ; 0x08001636
+<br/>.L32:
+<span id="A080015c2">  0x080015C2:  </span>6AA8         LDR        R0, [R5, #40]
+<span id="A080015c4">  0x080015C4:  </span>F240 31F3    MOVW       R1, #0x03F3
+<span id="A080015c8">  0x080015C8:  </span>4388         BICS       R0, R1
+<span id="A080015ca">  0x080015CA:  </span>F64F 71F8    MOVW       R1, #0xFFF8
+<span id="A080015ce">  0x080015CE:  </span>3052         ADDS       R0, #82
+<span id="A080015d0">  0x080015D0:  </span>62A8         STR        R0, [R5, #40]
+<span id="A080015d2">  0x080015D2:  </span>F240 2027    MOVW       R0, #0x0227
+<span id="A080015d6">  0x080015D6:  </span>F2C0 1001    MOVT       R0, #0x0101
+<span id="A080015da">  0x080015DA:  </span>6328         STR        R0, [R5, #48]
+<span id="A080015dc">  0x080015DC:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A080015de">  0x080015DE:  </span>F020 0001    BIC        R0, R0, #1
+<span id="A080015e2">  0x080015E2:  </span>62E8         STR        R0, [R5, #44]
+<span id="A080015e4">  0x080015E4:  </span>6B68         LDR        R0, [R5, #52]
+<span id="A080015e6">  0x080015E6:  </span>4388         BICS       R0, R1
+<span id="A080015e8">  0x080015E8:  </span>6368         STR        R0, [R5, #52]
+<span id="A080015ea">  0x080015EA:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A080015ec">  0x080015EC:  </span>2102         MOVS       R1, #2
+<span id="A080015ee">  0x080015EE:  </span>F361 0083    BFI        R0, R1, #2, #2
+<span id="A080015f2">  0x080015F2:  </span>62E8         STR        R0, [R5, #44]
+<span id="A080015f4">  0x080015F4:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A080015f6">  0x080015F6:  </span>F020 0002    BIC        R0, R0, #2
+<span id="A080015fa">  0x080015FA:  </span>62E8         STR        R0, [R5, #44]
+<span id="A080015fc">  0x080015FC:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A080015fe">  0x080015FE:  </span>F440 3080    ORR        R0, R0, #0x010000
+<span id="A08001602">  0x08001602:  </span>62E8         STR        R0, [R5, #44]
+<span id="A08001604">  0x08001604:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A08001606">  0x08001606:  </span>F440 3000    ORR        R0, R0, #0x020000
+<span id="A0800160a">  0x0800160A:  </span>62E8         STR        R0, [R5, #44]
+<span id="A0800160c">  0x0800160C:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A0800160e">  0x0800160E:  </span>F440 2080    ORR        R0, R0, #0x040000
+<span id="A08001612">  0x08001612:  </span>62E8         STR        R0, [R5, #44]
+<span id="A08001614">  0x08001614:  </span>6AE8         LDR        R0, [R5, #44]
+<span id="A08001616">  0x08001616:  </span>F040 0001    ORR        R0, R0, #1
+<span id="A0800161a">  0x0800161A:  </span>62E8         STR        R0, [R5, #44]
+<span id="A0800161c">  0x0800161C:  </span>6828         LDR        R0, [R5]
+<span id="A0800161e">  0x0800161E:  </span>F040 7080    ORR        R0, R0, #0x01000000
+<span id="A08001622">  0x08001622:  </span>6028         STR        R0, [R5]
+<span id="A08001624">  0x08001624:  </span>6830         LDR        R0, [R6]
+<br/>.L33:
+<span id="A08001626">  0x08001626:  </span>6829         LDR        R1, [R5]
+<span id="A08001628">  0x08001628:  </span>0189         LSLS       R1, R1, #6
+<span id="A0800162a">  0x0800162A:  </span>F53F AEA4    BMI.W      .L16                     ; 0x08001376
+<span id="A0800162e">  0x0800162E:  </span>6831         LDR        R1, [R6]
+<span id="A08001630">  0x08001630:  </span>1A09         SUBS       R1, R1, R0
+<span id="A08001632">  0x08001632:  </span>2902         CMP        R1, #2
+<span id="A08001634">  0x08001634:  </span>D9F7         BLS        .L33                     ; 0x08001626
+<br/>.L34:
+<span id="A08001636">  0x08001636:  </span>B672         CPSID      i
+<br/>.L35:
+<span id="A08001638">  0x08001638:  </span>6881         LDR        R1, [R0, #8]
+<span id="A0800163a">  0x0800163A:  </span>F421 01E0    BIC        R1, R1, #0x700000
+<span id="A0800163e">  0x0800163E:  </span>F021 0140    BIC        R1, R1, #64
+<span id="A08001642">  0x08001642:  </span>6081         STR        R1, [R0, #8]
+<span id="A08001644">  0x08001644:  </span>E897 004E    LDM.W      R7, {R1-R3, R6}
+<span id="A08001648">  0x08001648:  </span>4331         ORRS       R1, R6
+<span id="A0800164a">  0x0800164A:  </span>697E         LDR        R6, [R7, #20]
+<span id="A0800164c">  0x0800164C:  </span>4331         ORRS       R1, R6
+<span id="A0800164e">  0x0800164E:  </span>6886         LDR        R6, [R0, #8]
+<span id="A08001650">  0x08001650:  </span>4331         ORRS       R1, R6
+<span id="A08001652">  0x08001652:  </span>6081         STR        R1, [R0, #8]
+<span id="A08001654">  0x08001654:  </span>EA43 4102    ORR.W      R1, R3, R2, LSL #16
+<span id="A08001658">  0x08001658:  </span>6101         STR        R1, [R0, #16]
+<span id="A0800165a">  0x0800165A:  </span>F8D8 0004    LDR.W      R0, [R8, #4]
+<span id="A0800165e">  0x0800165E:  </span>F020 0080    BIC        R0, R0, #128
+<span id="A08001662">  0x08001662:  </span>F8C8 0004    STR.W      R0, [R8, #4]
+<span id="A08001666">  0x08001666:  </span>F8D8 0000    LDR.W      R0, [R8]
+<span id="A0800166a">  0x0800166A:  </span>0680         LSLS       R0, R0, #26
+<span id="A0800166c">  0x0800166C:  </span>D405         BMI        .L36                     ; 0x0800167A
+<span id="A0800166e">  0x0800166E:  </span>F000 FA1A    BL         <a href="#àc­D">HAL_RTC_WaitForSynchro</a>   ; 0x08001AA6
+<span id="A08001672">  0x08001672:  </span>B1F0         CBZ        R0, .L39                 ; 0x080016B2
+<span id="A08001674">  0x08001674:  </span>2003         MOVS       R0, #3
+<span id="A08001676">  0x08001676:  </span>7778         STRB       R0, [R7, #29]
+<span id="A08001678">  0x08001678:  </span>E010         B          .L37                     ; 0x0800169C
+<br/>.L36:
+<span id="A0800167a">  0x0800167A:  </span>F8D8 0000    LDR.W      R0, [R8]
+<span id="A0800167e">  0x0800167E:  </span>F020 0020    BIC        R0, R0, #32
+<span id="A08001682">  0x08001682:  </span>F8C8 0000    STR.W      R0, [R8]
+<span id="A08001686">  0x08001686:  </span>F000 FA0E    BL         <a href="#Àh­D">HAL_RTC_WaitForSynchro</a>   ; 0x08001AA6
+<span id="A0800168a">  0x0800168A:  </span>B160         CBZ        R0, .L38                 ; 0x080016A6
+<span id="A0800168c">  0x0800168C:  </span>2003         MOVS       R0, #3
+<span id="A0800168e">  0x0800168E:  </span>7778         STRB       R0, [R7, #29]
+<span id="A08001690">  0x08001690:  </span>F8D8 0000    LDR.W      R0, [R8]
+<span id="A08001694">  0x08001694:  </span>F040 0020    ORR        R0, R0, #32
+<span id="A08001698">  0x08001698:  </span>F8C8 0000    STR.W      R0, [R8]
+<br/>.L37:
+<span id="A0800169c">  0x0800169C:  </span>F857 0C04    LDR        R0, [R7, #-4]
+<span id="A080016a0">  0x080016A0:  </span>21FF         MOVS       R1, #255
+<span id="A080016a2">  0x080016A2:  </span>6241         STR        R1, [R0, #36]
+<span id="A080016a4">  0x080016A4:  </span>B672         CPSID      i
+<br/>.L38:
+<span id="A080016a6">  0x080016A6:  </span>F8D8 0000    LDR.W      R0, [R8]
+<span id="A080016aa">  0x080016AA:  </span>F040 0020    ORR        R0, R0, #32
+<span id="A080016ae">  0x080016AE:  </span>F8C8 0000    STR.W      R0, [R8]
+<br/>.L39:
+<span id="A080016b2">  0x080016B2:  </span>F857 0C04    LDR        R0, [R7, #-4]
+<span id="A080016b6">  0x080016B6:  </span>6939         LDR        R1, [R7, #16]
+<span id="A080016b8">  0x080016B8:  </span>69BA         LDR        R2, [R7, #24]
+<span id="A080016ba">  0x080016BA:  </span>6CC3         LDR        R3, [R0, #76]
+<span id="A080016bc">  0x080016BC:  </span>4311         ORRS       R1, R2
+<span id="A080016be">  0x080016BE:  </span>F023 0303    BIC        R3, R3, #3
+<span id="A080016c2">  0x080016C2:  </span>64C3         STR        R3, [R0, #76]
+<span id="A080016c4">  0x080016C4:  </span>6CC2         LDR        R2, [R0, #76]
+<span id="A080016c6">  0x080016C6:  </span>4311         ORRS       R1, R2
+<span id="A080016c8">  0x080016C8:  </span>64C1         STR        R1, [R0, #76]
+<span id="A080016ca">  0x080016CA:  </span>21FF         MOVS       R1, #255
+<span id="A080016cc">  0x080016CC:  </span>6241         STR        R1, [R0, #36]
+<br/>.L40:
+<span id="A080016ce">  0x080016CE:  </span>2001         MOVS       R0, #1
+<span id="A080016d0">  0x080016D0:  </span>F240 041C    MOVW       R4, #28                  ; 0x30000000 = hspi4
+<span id="A080016d4">  0x080016D4:  </span>7778         STRB       R0, [R7, #29]
+<span id="A080016d6">  0x080016D6:  </span>F2C3 0400    MOVT       R4, #0x3000              ; 0x30000000 = hspi4
+<span id="A080016da">  0x080016DA:  </span>F243 4000    MOVW       R0, #0x3400
+<span id="A080016de">  0x080016DE:  </span>2114         MOVS       R1, #20
+<span id="A080016e0">  0x080016E0:  </span>F2C4 0001    MOVT       R0, #0x4001
+<span id="A080016e4">  0x080016E4:  </span>F844 0C1C    STR        R0, [R4, #-28]
+<span id="A080016e8">  0x080016E8:  </span>F44F 0080    MOV.W      R0, #0x400000
+<span id="A080016ec">  0x080016EC:  </span>F844 0C18    STR        R0, [R4, #-24]
+<span id="A080016f0">  0x080016F0:  </span>F44F 20C0    MOV.W      R0, #0x060000
+<span id="A080016f4">  0x080016F4:  </span>F844 0C14    STR        R0, [R4, #-20]
+<span id="A080016f8">  0x080016F8:  </span>2008         MOVS       R0, #8
+<span id="A080016fa">  0x080016FA:  </span>F844 0C10    STR        R0, [R4, #-16]
+<span id="A080016fe">  0x080016FE:  </span>2000         MOVS       R0, #0
+<span id="A08001700">  0x08001700:  </span>E944 0003    STRD       R0, R0, [R4, #-12]
+<span id="A08001704">  0x08001704:  </span>F04F 5000    MOV.W      R0, #0x20000000
+<span id="A08001708">  0x08001708:  </span>F844 0C04    STR        R0, [R4, #-4]
+<span id="A0800170c">  0x0800170C:  </span>4620         MOV        R0, R4
+<span id="A0800170e">  0x0800170E:  </span>F7FF FA87    BL         <a href="# ô]oÛ">__aeabi_memclr</a>           ; 0x08000C20
+<span id="A08001712">  0x08001712:  </span>F04F 4080    MOV.W      R0, #0x40000000
+<span id="A08001716">  0x08001716:  </span>61A0         STR        R0, [R4, #24]
+<span id="A08001718">  0x08001718:  </span>F104 001C    ADD.W      R0, R4, #28
+<span id="A0800171c">  0x0800171C:  </span>2124         MOVS       R1, #36
+<span id="A0800171e">  0x0800171E:  </span>F7FF FA7F    BL         <a href="# ô]oÛ">__aeabi_memclr</a>           ; 0x08000C20
+<span id="A08001722">  0x08001722:  </span>F7FF FAB1    BL         <a href="# ô]oÛ">HAL_SPI_Init</a>             ; 0x08000C88
+<span id="A08001726">  0x08001726:  </span>B672         CPSID      i
+<br/>.L41:
+<span id="A08001728">  0x08001728:  </span>B672         CPSID      i
+<br/>.L42:
+<span id="A0800172a">  0x0800172A:  </span>B672         CPSID      i
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.NMI_Handler from charger_lto.o, size=2, align=2">Section .text.NMI_Handler from charger_lto.o, size=2, align=2</h2>
+<pre>
+<br/><span id="ÝxÑ
+D">NMI_Handler:</span>
+<span id="gxÑ
+D">HardFault_Handler:</span>
+<span id="°xÑ
+D">MemManage_Handler:</span>
+<span id="7xÑ
+D">BusFault_Handler:</span>
+<span id="NxÑ
+D">UsageFault_Handler:</span>
+<span id="YÓ
+D">WWDG_IRQHandler:</span>
+<span id="iÓ
+D">PVD_AVD_IRQHandler:</span>
+<span id="|Ó
+D">TAMP_STAMP_IRQHandler:</span>
+<span id="Ó
+D">RTC_WKUP_IRQHandler:</span>
+<span id="¦Ó
+D">FLASH_IRQHandler:</span>
+<span id="·Ó
+D">RCC_IRQHandler:</span>
+<span id="ÆÓ
+D">EXTI0_IRQHandler:</span>
+<span id="×Ó
+D">EXTI1_IRQHandler:</span>
+<span id="èÓ
+D">EXTI2_IRQHandler:</span>
+<span id="ùÓ
+D">EXTI3_IRQHandler:</span>
+<span id="
+Ó
+D">EXTI4_IRQHandler:</span>
+<span id="3Ó
+D">DMA1_Stream1_IRQHandler:</span>
+<span id="KÓ
+D">DMA1_Stream2_IRQHandler:</span>
+<span id="cÓ
+D">DMA1_Stream3_IRQHandler:</span>
+<span id="{Ó
+D">DMA1_Stream4_IRQHandler:</span>
+<span id="Ó
+D">DMA1_Stream5_IRQHandler:</span>
+<span id="«Ó
+D">DMA1_Stream6_IRQHandler:</span>
+<span id="ÃÓ
+D">ADC_IRQHandler:</span>
+<span id="ÒÓ
+D">FDCAN1_IT0_IRQHandler:</span>
+<span id="èÓ
+D">FDCAN2_IT0_IRQHandler:</span>
+<span id="þÓ
+D">FDCAN1_IT1_IRQHandler:</span>
+<span id="Ó
+D">FDCAN2_IT1_IRQHandler:</span>
+<span id="*Ó
+D">EXTI9_5_IRQHandler:</span>
+<span id="=Ó
+D">TIM1_BRK_IRQHandler:</span>
+<span id="QÓ
+D">TIM1_UP_IRQHandler:</span>
+<span id="dÓ
+D">TIM1_TRG_COM_IRQHandler:</span>
+<span id="|Ó
+D">TIM1_CC_IRQHandler:</span>
+<span id="Ó
+D">TIM2_IRQHandler:</span>
+<span id="Ó
+D">TIM3_IRQHandler:</span>
+<span id="*Ó
+D">TIM4_IRQHandler:</span>
+<span id="Ó
+D">I2C1_EV_IRQHandler:</span>
+<span id="¢Ó
+D">I2C1_ER_IRQHandler:</span>
+<span id="µÓ
+D">I2C2_EV_IRQHandler:</span>
+<span id="ÈÓ
+D">I2C2_ER_IRQHandler:</span>
+<span id="Ó
+D">SPI1_IRQHandler:</span>
+<span id="¶Ó
+D">SPI2_IRQHandler:</span>
+<span id="ÛÓ
+D">USART1_IRQHandler:</span>
+<span id="íÓ
+D">USART2_IRQHandler:</span>
+<span id="ÿÓ
+D">USART3_IRQHandler:</span>
+<span id="Ó
+D">EXTI15_10_IRQHandler:</span>
+<span id="&Ó
+D">RTC_Alarm_IRQHandler:</span>
+<span id=";Ó
+D">TIM8_BRK_TIM12_IRQHandler:</span>
+<span id="UÓ
+D">TIM8_UP_TIM13_IRQHandler:</span>
+<span id="nÓ
+D">TIM8_TRG_COM_TIM14_IRQHandler:</span>
+<span id="Ó
+D">TIM8_CC_IRQHandler:</span>
+<span id="Ó
+D">DMA1_Stream7_IRQHandler:</span>
+<span id="·Ó
+D">FMC_IRQHandler:</span>
+<span id="ÆÓ
+D">SDMMC1_IRQHandler:</span>
+<span id="<Ó
+D">TIM5_IRQHandler:</span>
+<span id="ØÓ
+D">SPI3_IRQHandler:</span>
+<span id="èÓ
+D">UART4_IRQHandler:</span>
+<span id="ùÓ
+D">UART5_IRQHandler:</span>
+<span id="
+Ó
+D">TIM6_DAC_IRQHandler:</span>
+<span id="
+Ó
+D">TIM7_IRQHandler:</span>
+<span id=".Ó
+D">DMA2_Stream0_IRQHandler:</span>
+<span id="FÓ
+D">DMA2_Stream1_IRQHandler:</span>
+<span id="^Ó
+D">DMA2_Stream2_IRQHandler:</span>
+<span id="vÓ
+D">DMA2_Stream3_IRQHandler:</span>
+<span id="Ó
+D">DMA2_Stream4_IRQHandler:</span>
+<span id="¦Ó
+D">ETH_IRQHandler:</span>
+<span id="µÓ
+D">ETH_WKUP_IRQHandler:</span>
+<span id="ÉÓ
+D">FDCAN_CAL_IRQHandler:</span>
+<span id="ÞÓ
+D">DMA2_Stream5_IRQHandler:</span>
+<span id="öÓ
+D">DMA2_Stream6_IRQHandler:</span>
+<span id="Ó
+D">DMA2_Stream7_IRQHandler:</span>
+<span id="&Ó
+D">USART6_IRQHandler:</span>
+<span id="8Ó
+D">I2C3_EV_IRQHandler:</span>
+<span id="KÓ
+D">I2C3_ER_IRQHandler:</span>
+<span id="^Ó
+D">OTG_HS_EP1_OUT_IRQHandler:</span>
+<span id="xÓ
+D">OTG_HS_EP1_IN_IRQHandler:</span>
+<span id="Ó
+D">OTG_HS_WKUP_IRQHandler:</span>
+<span id="¨Ó
+D">OTG_HS_IRQHandler:</span>
+<span id="ºÓ
+D">DCMI_PSSI_IRQHandler:</span>
+<span id="ÏÓ
+D">RNG_IRQHandler:</span>
+<span id="ÞÓ
+D">FPU_IRQHandler:</span>
+<span id="íÓ
+D">UART7_IRQHandler:</span>
+<span id="þÓ
+D">UART8_IRQHandler:</span>
+<span id="Ó
+D">SPI5_IRQHandler:</span>
+<span id="/Ó
+D">SPI6_IRQHandler:</span>
+<span id="?Ó
+D">SAI1_IRQHandler:</span>
+<span id="OÓ
+D">LTDC_IRQHandler:</span>
+<span id="_Ó
+D">LTDC_ER_IRQHandler:</span>
+<span id="rÓ
+D">DMA2D_IRQHandler:</span>
+<span id="Ó
+D">OCTOSPI1_IRQHandler:</span>
+<span id="Ó
+D">LPTIM1_IRQHandler:</span>
+<span id="©Ó
+D">CEC_IRQHandler:</span>
+<span id="¸Ó
+D">I2C4_EV_IRQHandler:</span>
+<span id="ËÓ
+D">I2C4_ER_IRQHandler:</span>
+<span id="ÞÓ
+D">SPDIF_RX_IRQHandler:</span>
+<span id="òÓ
+D">DMAMUX1_OVR_IRQHandler:</span>
+<span id="	Ó
+D">DFSDM1_FLT0_IRQHandler:</span>
+<span id=" Ó
+D">DFSDM1_FLT1_IRQHandler:</span>
+<span id="7Ó
+D">DFSDM1_FLT2_IRQHandler:</span>
+<span id="NÓ
+D">DFSDM1_FLT3_IRQHandler:</span>
+<span id="eÓ
+D">SWPMI1_IRQHandler:</span>
+<span id="wÓ
+D">TIM15_IRQHandler:</span>
+<span id="Ó
+D">TIM16_IRQHandler:</span>
+<span id="Ó
+D">TIM17_IRQHandler:</span>
+<span id="ªÓ
+D">MDIOS_WKUP_IRQHandler:</span>
+<span id="ÀÓ
+D">MDIOS_IRQHandler:</span>
+<span id="ÑÓ
+D">MDMA_IRQHandler:</span>
+<span id="áÓ
+D">SDMMC2_IRQHandler:</span>
+<span id="óÓ
+D">HSEM1_IRQHandler:</span>
+<span id="Ó
+D">ADC3_IRQHandler:</span>
+<span id="Ó
+D">DMAMUX2_OVR_IRQHandler:</span>
+<span id="+Ó
+D">BDMA_Channel0_IRQHandler:</span>
+<span id="DÓ
+D">BDMA_Channel1_IRQHandler:</span>
+<span id="]Ó
+D">BDMA_Channel2_IRQHandler:</span>
+<span id="vÓ
+D">BDMA_Channel3_IRQHandler:</span>
+<span id="Ó
+D">BDMA_Channel4_IRQHandler:</span>
+<span id="¨Ó
+D">BDMA_Channel5_IRQHandler:</span>
+<span id="ÁÓ
+D">BDMA_Channel6_IRQHandler:</span>
+<span id="ÚÓ
+D">BDMA_Channel7_IRQHandler:</span>
+<span id="óÓ
+D">COMP1_IRQHandler:</span>
+<span id="Ó
+D">LPTIM2_IRQHandler:</span>
+<span id="Ó
+D">LPTIM3_IRQHandler:</span>
+<span id="(Ó
+D">LPTIM4_IRQHandler:</span>
+<span id=":Ó
+D">LPTIM5_IRQHandler:</span>
+<span id="LÓ
+D">LPUART1_IRQHandler:</span>
+<span id="_Ó
+D">CRS_IRQHandler:</span>
+<span id="nÓ
+D">ECC_IRQHandler:</span>
+<span id="}Ó
+D">SAI4_IRQHandler:</span>
+<span id="Ó
+D">DTS_IRQHandler:</span>
+<span id="Ó
+D">WAKEUP_PIN_IRQHandler:</span>
+<span id="²Ó
+D">OCTOSPI2_IRQHandler:</span>
+<span id="ÆÓ
+D">FMAC_IRQHandler:</span>
+<span id="ÖÓ
+D">CORDIC_IRQHandler:</span>
+<span id="èÓ
+D">UART9_IRQHandler:</span>
+<span id="ùÓ
+D">USART10_IRQHandler:</span>
+<span id="
+Ó
+D">I2C5_EV_IRQHandler:</span>
+<span id="Ó
+D">I2C5_ER_IRQHandler:</span>
+<span id="2Ó
+D">FDCAN3_IT0_IRQHandler:</span>
+<span id="HÓ
+D">FDCAN3_IT1_IRQHandler:</span>
+<span id="^Ó
+D">TIM23_IRQHandler:</span>
+<span id="oÓ
+D">TIM24_IRQHandler:</span>
+<span id="A0800172c">  0x0800172C:  </span>E7FE         B          <a href="# ô]oÛ">NMI_Handler</a>              ; Dedupe identical section .init.TIM24_IRQHandler
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.SVC_Handler from charger_lto.o, size=2, align=2">Section .text.SVC_Handler from charger_lto.o, size=2, align=2</h2>
+<pre>
+<br/><span id="ïxÑ
+D">SVC_Handler:</span>
+<span id="xÑ
+D">DebugMon_Handler:</span>
+<span id="ÈxÑ
+D">PendSV_Handler:</span>
+<span id="A0800172e">  0x0800172E:  </span>4770         BX         LR                       ; Dedupe identical section .text.PendSV_Handler
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.SPI4_IRQHandler from charger_lto.o, size=630, align=2">Section .text.SPI4_IRQHandler from charger_lto.o, size=630, align=2</h2>
+<pre>
+<br/><span id="yÑ
+D">SPI4_IRQHandler:</span>
+<span id="A08001730">  0x08001730:  </span>B538         PUSH       {R3-R5, LR}
+<span id="A08001732">  0x08001732:  </span>F240 0400    MOVW       R4, #0                   ; 0x30000000 = hspi4
+<span id="A08001736">  0x08001736:  </span>F2C3 0400    MOVT       R4, #0x3000              ; 0x30000000 = hspi4
+<span id="A0800173a">  0x0800173A:  </span>6820         LDR        R0, [R4]
+<span id="A0800173c">  0x0800173C:  </span>6902         LDR        R2, [R0, #16]
+<span id="A0800173e">  0x0800173E:  </span>6943         LDR        R3, [R0, #20]
+<span id="A08001740">  0x08001740:  </span>6881         LDR        R1, [R0, #8]
+<span id="A08001742">  0x08001742:  </span>F894 5081    LDRB.W     R5, [R4, #129]
+<span id="A08001746">  0x08001746:  </span>051D         LSLS       R5, R3, #20
+<span id="A08001748">  0x08001748:  </span>D507         BPL        .L1                      ; 0x0800175A
+<span id="A0800174a">  0x0800174A:  </span>F012 0508    ANDS       R5, R2, #8
+<span id="A0800174e">  0x0800174E:  </span>BF1F         ITTTT      NE
+<span id="A08001750">  0x08001750:  </span>6981         LDRNE      R1, [R0, #24]
+<span id="A08001752">  0x08001752:  </span>F441 6100    ORRNE      R1, R1, #0x0800
+<span id="A08001756">  0x08001756:  </span>6181         STRNE      R1, [R0, #24]
+<span id="A08001758">  0x08001758:  </span>BD38         POPNE      {R3-R5, PC}
+<br/>.L1:
+<span id="A0800175a">  0x0800175A:  </span>EA03 0502    AND.W      R5, R3, R2
+<span id="A0800175e">  0x0800175E:  </span>F005 0264    AND        R2, R5, #100
+<span id="A08001762">  0x08001762:  </span>2A04         CMP        R2, #4
+<span id="A08001764">  0x08001764:  </span>D104         BNE        .L2                      ; 0x08001770
+<span id="A08001766">  0x08001766:  </span>6F61         LDR        R1, [R4, #116]
+<span id="A08001768">  0x08001768:  </span>4620         MOV        R0, R4
+<span id="A0800176a">  0x0800176A:  </span>4788         BLX        R1
+<span id="A0800176c">  0x0800176C:  </span>6F21         LDR        R1, [R4, #112]
+<span id="A0800176e">  0x0800176E:  </span>E010         B          .L6                      ; 0x08001792
+<br/>.L2:
+<span id="A08001770">  0x08001770:  </span>F005 0245    AND        R2, R5, #69
+<span id="A08001774">  0x08001774:  </span>2A01         CMP        R2, #1
+<span id="A08001776">  0x08001776:  </span>D107         BNE        .L4                      ; 0x08001788
+<span id="A08001778">  0x08001778:  </span>6F21         LDR        R1, [R4, #112]
+<span id="A0800177a">  0x0800177A:  </span>4620         MOV        R0, R4
+<span id="A0800177c">  0x0800177C:  </span>4788         BLX        R1
+<span id="A0800177e">  0x0800177E:  </span>F005 0022    AND        R0, R5, #34
+<span id="A08001782">  0x08001782:  </span>2802         CMP        R0, #2
+<span id="A08001784">  0x08001784:  </span>D004         BEQ        .L5                      ; 0x08001790
+<br/>.L3:
+<span id="A08001786">  0x08001786:  </span>BD38         POP        {R3-R5, PC}
+<br/>.L4:
+<span id="A08001788">  0x08001788:  </span>F005 0226    AND        R2, R5, #38
+<span id="A0800178c">  0x0800178C:  </span>2A02         CMP        R2, #2
+<span id="A0800178e">  0x0800178E:  </span>D104         BNE        .L7                      ; 0x0800179A
+<br/>.L5:
+<span id="A08001790">  0x08001790:  </span>6F61         LDR        R1, [R4, #116]
+<br/>.L6:
+<span id="A08001792">  0x08001792:  </span>4620         MOV        R0, R4
+<span id="A08001794">  0x08001794:  </span>E8BD 4038    POP.W      {R3-R5, LR}
+<span id="A08001798">  0x08001798:  </span>4708         BX         R1
+<br/>.L7:
+<span id="A0800179a">  0x0800179A:  </span>072A         LSLS       R2, R5, #28
+<span id="A0800179c">  0x0800179C:  </span>D46B         BMI        .L13                     ; 0x08001876
+<span id="A0800179e">  0x0800179E:  </span>F415 7F58    TST        R5, #0x0360
+<span id="A080017a2">  0x080017A2:  </span>D0F0         BEQ        .L3                      ; 0x08001786
+<span id="A080017a4">  0x080017A4:  </span>066A         LSLS       R2, R5, #25
+<span id="A080017a6">  0x080017A6:  </span>D509         BPL        .L8                      ; 0x080017BC
+<span id="A080017a8">  0x080017A8:  </span>F8D4 2084    LDR.W      R2, [R4, #132]
+<span id="A080017ac">  0x080017AC:  </span>F042 0204    ORR        R2, R2, #4
+<span id="A080017b0">  0x080017B0:  </span>F8C4 2084    STR.W      R2, [R4, #132]
+<span id="A080017b4">  0x080017B4:  </span>6982         LDR        R2, [R0, #24]
+<span id="A080017b6">  0x080017B6:  </span>F042 0240    ORR        R2, R2, #64
+<span id="A080017ba">  0x080017BA:  </span>6182         STR        R2, [R0, #24]
+<br/>.L8:
+<span id="A080017bc">  0x080017BC:  </span>05AA         LSLS       R2, R5, #22
+<span id="A080017be">  0x080017BE:  </span>D509         BPL        .L9                      ; 0x080017D4
+<span id="A080017c0">  0x080017C0:  </span>F8D4 2084    LDR.W      R2, [R4, #132]
+<span id="A080017c4">  0x080017C4:  </span>F042 0201    ORR        R2, R2, #1
+<span id="A080017c8">  0x080017C8:  </span>F8C4 2084    STR.W      R2, [R4, #132]
+<span id="A080017cc">  0x080017CC:  </span>6982         LDR        R2, [R0, #24]
+<span id="A080017ce">  0x080017CE:  </span>F442 7200    ORR        R2, R2, #0x0200
+<span id="A080017d2">  0x080017D2:  </span>6182         STR        R2, [R0, #24]
+<br/>.L9:
+<span id="A080017d4">  0x080017D4:  </span>05EA         LSLS       R2, R5, #23
+<span id="A080017d6">  0x080017D6:  </span>D509         BPL        .L10                     ; 0x080017EC
+<span id="A080017d8">  0x080017D8:  </span>F8D4 2084    LDR.W      R2, [R4, #132]
+<span id="A080017dc">  0x080017DC:  </span>F042 0208    ORR        R2, R2, #8
+<span id="A080017e0">  0x080017E0:  </span>F8C4 2084    STR.W      R2, [R4, #132]
+<span id="A080017e4">  0x080017E4:  </span>6982         LDR        R2, [R0, #24]
+<span id="A080017e6">  0x080017E6:  </span>F442 7280    ORR        R2, R2, #0x0100
+<span id="A080017ea">  0x080017EA:  </span>6182         STR        R2, [R0, #24]
+<br/>.L10:
+<span id="A080017ec">  0x080017EC:  </span>06AA         LSLS       R2, R5, #26
+<span id="A080017ee">  0x080017EE:  </span>D509         BPL        .L11                     ; 0x08001804
+<span id="A080017f0">  0x080017F0:  </span>F8D4 2084    LDR.W      R2, [R4, #132]
+<span id="A080017f4">  0x080017F4:  </span>F042 0280    ORR        R2, R2, #128
+<span id="A080017f8">  0x080017F8:  </span>F8C4 2084    STR.W      R2, [R4, #132]
+<span id="A080017fc">  0x080017FC:  </span>6982         LDR        R2, [R0, #24]
+<span id="A080017fe">  0x080017FE:  </span>F042 0220    ORR        R2, R2, #32
+<span id="A08001802">  0x08001802:  </span>6182         STR        R2, [R0, #24]
+<br/>.L11:
+<span id="A08001804">  0x08001804:  </span>F8D4 2084    LDR.W      R2, [R4, #132]
+<span id="A08001808">  0x08001808:  </span>2A00         CMP        R2, #0
+<span id="A0800180a">  0x0800180A:  </span>D0BC         BEQ        .L3                      ; 0x08001786
+<span id="A0800180c">  0x0800180C:  </span>6802         LDR        R2, [R0]
+<span id="A0800180e">  0x0800180E:  </span>F401 4140    AND        R1, R1, #0xC000
+<span id="A08001812">  0x08001812:  </span>F022 0201    BIC        R2, R2, #1
+<span id="A08001816">  0x08001816:  </span>6002         STR        R2, [R0]
+<span id="A08001818">  0x08001818:  </span>6902         LDR        R2, [R0, #16]
+<span id="A0800181a">  0x0800181A:  </span>F240 336B    MOVW       R3, #0x036B
+<span id="A0800181e">  0x0800181E:  </span>F5B1 4F40    CMP.W      R1, #0xC000
+<span id="A08001822">  0x08001822:  </span>EA22 0103    BIC.W      R1, R2, R3
+<span id="A08001826">  0x08001826:  </span>6101         STR        R1, [R0, #16]
+<span id="A08001828">  0x08001828:  </span>F040 80B9    BNE.W      .L23                     ; 0x0800199E
+<span id="A0800182c">  0x0800182C:  </span>6881         LDR        R1, [R0, #8]
+<span id="A0800182e">  0x0800182E:  </span>F242 25F9    MOVW       R5, #0x22F9              ; 0x080022F9 = SPI_DMAAbortOnError
+<span id="A08001832">  0x08001832:  </span>F421 4140    BIC        R1, R1, #0xC000
+<span id="A08001836">  0x08001836:  </span>6081         STR        R1, [R0, #8]
+<span id="A08001838">  0x08001838:  </span>6FE0         LDR        R0, [R4, #124]
+<span id="A0800183a">  0x0800183A:  </span>F6C0 0500    MOVT       R5, #0x0800              ; 0x080022F9 = SPI_DMAAbortOnError
+<span id="A0800183e">  0x0800183E:  </span>B150         CBZ        R0, .L12                 ; 0x08001856
+<span id="A08001840">  0x08001840:  </span>6505         STR        R5, [R0, #80]
+<span id="A08001842">  0x08001842:  </span>F000 FC83    BL         <a href="# ^­D">HAL_DMA_Abort_IT</a>         ; 0x0800214C
+<span id="A08001846">  0x08001846:  </span>2800         CMP        R0, #0
+<span id="A08001848">  0x08001848:  </span>BF1E         ITTT       NE
+<span id="A0800184a">  0x0800184A:  </span>F8D4 0084    LDRNE.W    R0, [R4, #132]
+<span id="A0800184e">  0x0800184E:  </span>F040 0040    ORRNE      R0, R0, #64
+<span id="A08001852">  0x08001852:  </span>F8C4 0084    STRNE.W    R0, [R4, #132]
+<br/>.L12:
+<span id="A08001856">  0x08001856:  </span>6FA0         LDR        R0, [R4, #120]
+<span id="A08001858">  0x08001858:  </span>2800         CMP        R0, #0
+<span id="A0800185a">  0x0800185A:  </span>D094         BEQ        .L3                      ; 0x08001786
+<span id="A0800185c">  0x0800185C:  </span>6505         STR        R5, [R0, #80]
+<span id="A0800185e">  0x0800185E:  </span>F000 FC75    BL         <a href="# ^­D">HAL_DMA_Abort_IT</a>         ; 0x0800214C
+<span id="A08001862">  0x08001862:  </span>2800         CMP        R0, #0
+<span id="A08001864">  0x08001864:  </span>BF08         IT         EQ
+<span id="A08001866">  0x08001866:  </span>BD38         POPEQ      {R3-R5, PC}
+<span id="A08001868">  0x08001868:  </span>F8D4 0084    LDR.W      R0, [R4, #132]
+<span id="A0800186c">  0x0800186C:  </span>F040 0040    ORR        R0, R0, #64
+<span id="A08001870">  0x08001870:  </span>F8C4 0084    STR.W      R0, [R4, #132]
+<span id="A08001874">  0x08001874:  </span>BD38         POP        {R3-R5, PC}
+<br/>.L13:
+<span id="A08001876">  0x08001876:  </span>6981         LDR        R1, [R0, #24]
+<span id="A08001878">  0x08001878:  </span>F041 0108    ORR        R1, R1, #8
+<span id="A0800187c">  0x0800187C:  </span>6181         STR        R1, [R0, #24]
+<span id="A0800187e">  0x0800187E:  </span>6981         LDR        R1, [R0, #24]
+<span id="A08001880">  0x08001880:  </span>F041 0110    ORR        R1, R1, #16
+<span id="A08001884">  0x08001884:  </span>6181         STR        R1, [R0, #24]
+<span id="A08001886">  0x08001886:  </span>6981         LDR        R1, [R0, #24]
+<span id="A08001888">  0x08001888:  </span>F441 6100    ORR        R1, R1, #0x0800
+<span id="A0800188c">  0x0800188C:  </span>6181         STR        R1, [R0, #24]
+<span id="A0800188e">  0x0800188E:  </span>6901         LDR        R1, [R0, #16]
+<span id="A08001890">  0x08001890:  </span>F021 0108    BIC        R1, R1, #8
+<span id="A08001894">  0x08001894:  </span>6101         STR        R1, [R0, #16]
+<span id="A08001896">  0x08001896:  </span>6881         LDR        R1, [R0, #8]
+<span id="A08001898">  0x08001898:  </span>F411 4F40    TST        R1, #0xC000
+<span id="A0800189c">  0x0800189C:  </span>D124         BNE        .L18                     ; 0x080018E8
+<span id="A0800189e">  0x0800189E:  </span>F8B4 106A    LDRH.W     R1, [R4, #106]
+<span id="A080018a2">  0x080018A2:  </span>B309         CBZ        R1, .L18                 ; 0x080018E8
+<br/>.L14:
+<span id="A080018a4">  0x080018A4:  </span>68E1         LDR        R1, [R4, #12]
+<span id="A080018a6">  0x080018A6:  </span>2910         CMP        R1, #16
+<span id="A080018a8">  0x080018A8:  </span>D305         BCC        .L15                     ; 0x080018B6
+<span id="A080018aa">  0x080018AA:  </span>6822         LDR        R2, [R4]
+<span id="A080018ac">  0x080018AC:  </span>6E61         LDR        R1, [R4, #100]
+<span id="A080018ae">  0x080018AE:  </span>6B12         LDR        R2, [R2, #48]
+<span id="A080018b0">  0x080018B0:  </span>F841 2B04    STR        R2, [R1], #4
+<span id="A080018b4">  0x080018B4:  </span>E00D         B          .L17                     ; 0x080018D2
+<br/>.L15:
+<span id="A080018b6">  0x080018B6:  </span>2908         CMP        R1, #8
+<span id="A080018b8">  0x080018B8:  </span>D304         BCC        .L16                     ; 0x080018C4
+<span id="A080018ba">  0x080018BA:  </span>8E02         LDRH       R2, [R0, #48]
+<span id="A080018bc">  0x080018BC:  </span>6E61         LDR        R1, [R4, #100]
+<span id="A080018be">  0x080018BE:  </span>F821 2B02    STRH       R2, [R1], #2
+<span id="A080018c2">  0x080018C2:  </span>E006         B          .L17                     ; 0x080018D2
+<br/>.L16:
+<span id="A080018c4">  0x080018C4:  </span>6821         LDR        R1, [R4]
+<span id="A080018c6">  0x080018C6:  </span>F891 1030    LDRB.W     R1, [R1, #48]
+<span id="A080018ca">  0x080018CA:  </span>6E62         LDR        R2, [R4, #100]
+<span id="A080018cc">  0x080018CC:  </span>7011         STRB       R1, [R2]
+<span id="A080018ce">  0x080018CE:  </span>6E61         LDR        R1, [R4, #100]
+<span id="A080018d0">  0x080018D0:  </span>3101         ADDS       R1, #1
+<br/>.L17:
+<span id="A080018d2">  0x080018D2:  </span>6661         STR        R1, [R4, #100]
+<span id="A080018d4">  0x080018D4:  </span>F8B4 106A    LDRH.W     R1, [R4, #106]
+<span id="A080018d8">  0x080018D8:  </span>3901         SUBS       R1, #1
+<span id="A080018da">  0x080018DA:  </span>F8A4 106A    STRH.W     R1, [R4, #106]
+<span id="A080018de">  0x080018DE:  </span>F8B4 106A    LDRH.W     R1, [R4, #106]
+<span id="A080018e2">  0x080018E2:  </span>2900         CMP        R1, #0
+<span id="A080018e4">  0x080018E4:  </span>D1DE         BNE        .L14                     ; 0x080018A4
+<span id="A080018e6">  0x080018E6:  </span>6820         LDR        R0, [R4]
+<br/>.L18:
+<span id="A080018e8">  0x080018E8:  </span>6941         LDR        R1, [R0, #20]
+<span id="A080018ea">  0x080018EA:  </span>6982         LDR        R2, [R0, #24]
+<span id="A080018ec">  0x080018EC:  </span>F042 0208    ORR        R2, R2, #8
+<span id="A080018f0">  0x080018F0:  </span>6182         STR        R2, [R0, #24]
+<span id="A080018f2">  0x080018F2:  </span>6982         LDR        R2, [R0, #24]
+<span id="A080018f4">  0x080018F4:  </span>F240 336F    MOVW       R3, #0x036F
+<span id="A080018f8">  0x080018F8:  </span>F042 0210    ORR        R2, R2, #16
+<span id="A080018fc">  0x080018FC:  </span>6182         STR        R2, [R0, #24]
+<span id="A080018fe">  0x080018FE:  </span>6802         LDR        R2, [R0]
+<span id="A08001900">  0x08001900:  </span>F022 0201    BIC        R2, R2, #1
+<span id="A08001904">  0x08001904:  </span>6002         STR        R2, [R0]
+<span id="A08001906">  0x08001906:  </span>6902         LDR        R2, [R0, #16]
+<span id="A08001908">  0x08001908:  </span>439A         BICS       R2, R3
+<span id="A0800190a">  0x0800190A:  </span>6102         STR        R2, [R0, #16]
+<span id="A0800190c">  0x0800190C:  </span>6882         LDR        R2, [R0, #8]
+<span id="A0800190e">  0x0800190E:  </span>F422 4240    BIC        R2, R2, #0xC000
+<span id="A08001912">  0x08001912:  </span>6082         STR        R2, [R0, #8]
+<span id="A08001914">  0x08001914:  </span>F894 2081    LDRB.W     R2, [R4, #129]
+<span id="A08001918">  0x08001918:  </span>2A04         CMP        R2, #4
+<span id="A0800191a">  0x0800191A:  </span>BF18         IT         NE
+<span id="A0800191c">  0x0800191C:  </span>F011 0220    ANDSNE     R2, R1, #32
+<span id="A08001920">  0x08001920:  </span>D009         BEQ        .L19                     ; 0x08001936
+<span id="A08001922">  0x08001922:  </span>F8D4 2084    LDR.W      R2, [R4, #132]
+<span id="A08001926">  0x08001926:  </span>F042 0280    ORR        R2, R2, #128
+<span id="A0800192a">  0x0800192A:  </span>F8C4 2084    STR.W      R2, [R4, #132]
+<span id="A0800192e">  0x0800192E:  </span>6982         LDR        R2, [R0, #24]
+<span id="A08001930">  0x08001930:  </span>F042 0220    ORR        R2, R2, #32
+<span id="A08001934">  0x08001934:  </span>6182         STR        R2, [R0, #24]
+<br/>.L19:
+<span id="A08001936">  0x08001936:  </span>F894 2081    LDRB.W     R2, [R4, #129]
+<span id="A0800193a">  0x0800193A:  </span>2A03         CMP        R2, #3
+<span id="A0800193c">  0x0800193C:  </span>BF18         IT         NE
+<span id="A0800193e">  0x0800193E:  </span>F011 0240    ANDSNE     R2, R1, #64
+<span id="A08001942">  0x08001942:  </span>D009         BEQ        .L20                     ; 0x08001958
+<span id="A08001944">  0x08001944:  </span>F8D4 2084    LDR.W      R2, [R4, #132]
+<span id="A08001948">  0x08001948:  </span>F042 0204    ORR        R2, R2, #4
+<span id="A0800194c">  0x0800194C:  </span>F8C4 2084    STR.W      R2, [R4, #132]
+<span id="A08001950">  0x08001950:  </span>6982         LDR        R2, [R0, #24]
+<span id="A08001952">  0x08001952:  </span>F042 0240    ORR        R2, R2, #64
+<span id="A08001956">  0x08001956:  </span>6182         STR        R2, [R0, #24]
+<br/>.L20:
+<span id="A08001958">  0x08001958:  </span>058A         LSLS       R2, R1, #22
+<span id="A0800195a">  0x0800195A:  </span>D509         BPL        .L21                     ; 0x08001970
+<span id="A0800195c">  0x0800195C:  </span>F8D4 2084    LDR.W      R2, [R4, #132]
+<span id="A08001960">  0x08001960:  </span>F042 0201    ORR        R2, R2, #1
+<span id="A08001964">  0x08001964:  </span>F8C4 2084    STR.W      R2, [R4, #132]
+<span id="A08001968">  0x08001968:  </span>6982         LDR        R2, [R0, #24]
+<span id="A0800196a">  0x0800196A:  </span>F442 7200    ORR        R2, R2, #0x0200
+<span id="A0800196e">  0x0800196E:  </span>6182         STR        R2, [R0, #24]
+<br/>.L21:
+<span id="A08001970">  0x08001970:  </span>05C9         LSLS       R1, R1, #23
+<span id="A08001972">  0x08001972:  </span>D509         BPL        .L22                     ; 0x08001988
+<span id="A08001974">  0x08001974:  </span>F8D4 1084    LDR.W      R1, [R4, #132]
+<span id="A08001978">  0x08001978:  </span>F041 0108    ORR        R1, R1, #8
+<span id="A0800197c">  0x0800197C:  </span>F8C4 1084    STR.W      R1, [R4, #132]
+<span id="A08001980">  0x08001980:  </span>6981         LDR        R1, [R0, #24]
+<span id="A08001982">  0x08001982:  </span>F441 7180    ORR        R1, R1, #0x0100
+<span id="A08001986">  0x08001986:  </span>6181         STR        R1, [R0, #24]
+<br/>.L22:
+<span id="A08001988">  0x08001988:  </span>2000         MOVS       R0, #0
+<span id="A0800198a">  0x0800198A:  </span>F8A4 0062    STRH.W     R0, [R4, #98]
+<span id="A0800198e">  0x0800198E:  </span>F8A4 006A    STRH.W     R0, [R4, #106]
+<span id="A08001992">  0x08001992:  </span>2001         MOVS       R0, #1
+<span id="A08001994">  0x08001994:  </span>F884 0081    STRB.W     R0, [R4, #129]
+<span id="A08001998">  0x08001998:  </span>F8D4 0084    LDR.W      R0, [R4, #132]
+<span id="A0800199c">  0x0800199C:  </span>BD38         POP        {R3-R5, PC}
+<br/>.L23:
+<span id="A0800199e">  0x0800199E:  </span>2001         MOVS       R0, #1
+<span id="A080019a0">  0x080019A0:  </span>F884 0081    STRB.W     R0, [R4, #129]
+<span id="A080019a4">  0x080019A4:  </span>BD38         POP        {R3-R5, PC}
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .text.SystemInit from charger_lto.o, size=166, align=2">Section .text.SystemInit from charger_lto.o, size=166, align=2</h2>
 <pre>
-<br/><span id="²	#">SystemInit:</span>
-<span id="A08000706">  0x08000706:  </span>F64E 5088    MOVW       R0, #0xED88
-<span id="A0800070a">  0x0800070A:  </span>F242 0300    MOVW       R3, #0x2000
-<span id="A0800070e">  0x0800070E:  </span>F2CE 0000    MOVT       R0, #0xE000
-<span id="A08000712">  0x08000712:  </span>F2C5 2300    MOVT       R3, #0x5200
-<span id="A08000716">  0x08000716:  </span>6802         LDR        R2, [R0]
-<span id="A08000718">  0x08000718:  </span>F442 0270    ORR        R2, R2, #0xF00000
-<span id="A0800071c">  0x0800071C:  </span>6002         STR        R2, [R0]
-<span id="A0800071e">  0x0800071E:  </span>6818         LDR        R0, [R3]
-<span id="A08000720">  0x08000720:  </span>F000 000F    AND        R0, R0, #15
-<span id="A08000724">  0x08000724:  </span>2806         CMP        R0, #6
-<span id="A08000726">  0x08000726:  </span>D804         BHI        .L1                      ; 0x08000732
-<span id="A08000728">  0x08000728:  </span>6818         LDR        R0, [R3]
-<span id="A0800072a">  0x0800072A:  </span>2207         MOVS       R2, #7
-<span id="A0800072c">  0x0800072C:  </span>F362 0003    BFI        R0, R2, #0, #4
-<span id="A08000730">  0x08000730:  </span>6018         STR        R0, [R3]
+<br/><span id="}wÑ
+D">SystemInit:</span>
+<span id="A080019a6">  0x080019A6:  </span>F64E 5088    MOVW       R0, #0xED88
+<span id="A080019aa">  0x080019AA:  </span>F242 0300    MOVW       R3, #0x2000
+<span id="A080019ae">  0x080019AE:  </span>F2CE 0000    MOVT       R0, #0xE000
+<span id="A080019b2">  0x080019B2:  </span>F2C5 2300    MOVT       R3, #0x5200
+<span id="A080019b6">  0x080019B6:  </span>6802         LDR        R2, [R0]
+<span id="A080019b8">  0x080019B8:  </span>F442 0270    ORR        R2, R2, #0xF00000
+<span id="A080019bc">  0x080019BC:  </span>6002         STR        R2, [R0]
+<span id="A080019be">  0x080019BE:  </span>6818         LDR        R0, [R3]
+<span id="A080019c0">  0x080019C0:  </span>F000 000F    AND        R0, R0, #15
+<span id="A080019c4">  0x080019C4:  </span>2806         CMP        R0, #6
+<span id="A080019c6">  0x080019C6:  </span>D804         BHI        .L1                      ; 0x080019D2
+<span id="A080019c8">  0x080019C8:  </span>6818         LDR        R0, [R3]
+<span id="A080019ca">  0x080019CA:  </span>2207         MOVS       R2, #7
+<span id="A080019cc">  0x080019CC:  </span>F362 0003    BFI        R0, R2, #0, #4
+<span id="A080019d0">  0x080019D0:  </span>6018         STR        R0, [R3]
 <br/>.L1:
-<span id="A08000732">  0x08000732:  </span>F244 4000    MOVW       R0, #0x4400
-<span id="A08000736">  0x08000736:  </span>F64E 517F    MOVW       R1, #0xED7F
-<span id="A0800073a">  0x0800073A:  </span>F6C5 0002    MOVT       R0, #0x5802
-<span id="A0800073e">  0x0800073E:  </span>F6CE 21F6    MOVT       R1, #0xEAF6
-<span id="A08000742">  0x08000742:  </span>6802         LDR        R2, [R0]
-<span id="A08000744">  0x08000744:  </span>F042 0201    ORR        R2, R2, #1
-<span id="A08000748">  0x08000748:  </span>6002         STR        R2, [R0]
-<span id="A0800074a">  0x0800074A:  </span>2200         MOVS       R2, #0
-<span id="A0800074c">  0x0800074C:  </span>6102         STR        R2, [R0, #16]
-<span id="A0800074e">  0x0800074E:  </span>F8D0 C000    LDR.W      R12, [R0]
-<span id="A08000752">  0x08000752:  </span>EA01 010C    AND.W      R1, R1, R12
-<span id="A08000756">  0x08000756:  </span>6001         STR        R1, [R0]
-<span id="A08000758">  0x08000758:  </span>6819         LDR        R1, [R3]
-<span id="A0800075a">  0x0800075A:  </span>0709         LSLS       R1, R1, #28
-<span id="A0800075c">  0x0800075C:  </span>D505         BPL        .L2                      ; 0x0800076A
-<span id="A0800075e">  0x0800075E:  </span>6819         LDR        R1, [R3]
-<span id="A08000760">  0x08000760:  </span>F04F 0C07    MOV.W      R12, #7
-<span id="A08000764">  0x08000764:  </span>F36C 0103    BFI        R1, R12, #0, #4
-<span id="A08000768">  0x08000768:  </span>6019         STR        R1, [R3]
+<span id="A080019d2">  0x080019D2:  </span>F244 4000    MOVW       R0, #0x4400
+<span id="A080019d6">  0x080019D6:  </span>F64E 517F    MOVW       R1, #0xED7F
+<span id="A080019da">  0x080019DA:  </span>F6C5 0002    MOVT       R0, #0x5802
+<span id="A080019de">  0x080019DE:  </span>F6CE 21F6    MOVT       R1, #0xEAF6
+<span id="A080019e2">  0x080019E2:  </span>6802         LDR        R2, [R0]
+<span id="A080019e4">  0x080019E4:  </span>F042 0201    ORR        R2, R2, #1
+<span id="A080019e8">  0x080019E8:  </span>6002         STR        R2, [R0]
+<span id="A080019ea">  0x080019EA:  </span>2200         MOVS       R2, #0
+<span id="A080019ec">  0x080019EC:  </span>6102         STR        R2, [R0, #16]
+<span id="A080019ee">  0x080019EE:  </span>F8D0 C000    LDR.W      R12, [R0]
+<span id="A080019f2">  0x080019F2:  </span>EA01 010C    AND.W      R1, R1, R12
+<span id="A080019f6">  0x080019F6:  </span>6001         STR        R1, [R0]
+<span id="A080019f8">  0x080019F8:  </span>6819         LDR        R1, [R3]
+<span id="A080019fa">  0x080019FA:  </span>0709         LSLS       R1, R1, #28
+<span id="A080019fc">  0x080019FC:  </span>D505         BPL        .L2                      ; 0x08001A0A
+<span id="A080019fe">  0x080019FE:  </span>6819         LDR        R1, [R3]
+<span id="A08001a00">  0x08001A00:  </span>F04F 0C07    MOV.W      R12, #7
+<span id="A08001a04">  0x08001A04:  </span>F36C 0103    BFI        R1, R12, #0, #4
+<span id="A08001a08">  0x08001A08:  </span>6019         STR        R1, [R3]
 <br/>.L2:
-<span id="A0800076a">  0x0800076A:  </span>F240 2100    MOVW       R1, #0x0200
-<span id="A0800076e">  0x0800076E:  </span>6182         STR        R2, [R0, #24]
-<span id="A08000770">  0x08000770:  </span>F2C0 2102    MOVT       R1, #0x0202
-<span id="A08000774">  0x08000774:  </span>61C2         STR        R2, [R0, #28]
-<span id="A08000776">  0x08000776:  </span>6202         STR        R2, [R0, #32]
-<span id="A08000778">  0x08000778:  </span>6281         STR        R1, [R0, #40]
-<span id="A0800077a">  0x0800077A:  </span>2100         MOVS       R1, #0
-<span id="A0800077c">  0x0800077C:  </span>F2C0 11FF    MOVT       R1, #0x01FF
-<span id="A08000780">  0x08000780:  </span>62C1         STR        R1, [R0, #44]
-<span id="A08000782">  0x08000782:  </span>F240 2180    MOVW       R1, #0x0280
-<span id="A08000786">  0x08000786:  </span>F2C0 1101    MOVT       R1, #0x0101
-<span id="A0800078a">  0x0800078A:  </span>6301         STR        R1, [R0, #48]
-<span id="A0800078c">  0x0800078C:  </span>6342         STR        R2, [R0, #52]
-<span id="A0800078e">  0x0800078E:  </span>6381         STR        R1, [R0, #56]
-<span id="A08000790">  0x08000790:  </span>63C2         STR        R2, [R0, #60]
-<span id="A08000792">  0x08000792:  </span>6401         STR        R1, [R0, #64]
-<span id="A08000794">  0x08000794:  </span>6442         STR        R2, [R0, #68]
-<span id="A08000796">  0x08000796:  </span>6801         LDR        R1, [R0]
-<span id="A08000798">  0x08000798:  </span>F421 2180    BIC        R1, R1, #0x040000
-<span id="A0800079c">  0x0800079C:  </span>6001         STR        R1, [R0]
-<span id="A0800079e">  0x0800079E:  </span>6602         STR        R2, [R0, #96]
-<span id="A080007a0">  0x080007A0:  </span>F503 5000    ADD.W      R0, R3, #0x2000
-<span id="A080007a4">  0x080007A4:  </span>F243 01D2    MOVW       R1, #0x30D2
-<span id="A080007a8">  0x080007A8:  </span>6001         STR        R1, [R0]
-<span id="A080007aa">  0x080007AA:  </span>4770         BX         LR
+<span id="A08001a0a">  0x08001A0A:  </span>F240 2100    MOVW       R1, #0x0200
+<span id="A08001a0e">  0x08001A0E:  </span>6182         STR        R2, [R0, #24]
+<span id="A08001a10">  0x08001A10:  </span>F2C0 2102    MOVT       R1, #0x0202
+<span id="A08001a14">  0x08001A14:  </span>61C2         STR        R2, [R0, #28]
+<span id="A08001a16">  0x08001A16:  </span>6202         STR        R2, [R0, #32]
+<span id="A08001a18">  0x08001A18:  </span>6281         STR        R1, [R0, #40]
+<span id="A08001a1a">  0x08001A1A:  </span>2100         MOVS       R1, #0
+<span id="A08001a1c">  0x08001A1C:  </span>F2C0 11FF    MOVT       R1, #0x01FF
+<span id="A08001a20">  0x08001A20:  </span>62C1         STR        R1, [R0, #44]
+<span id="A08001a22">  0x08001A22:  </span>F240 2180    MOVW       R1, #0x0280
+<span id="A08001a26">  0x08001A26:  </span>F2C0 1101    MOVT       R1, #0x0101
+<span id="A08001a2a">  0x08001A2A:  </span>6301         STR        R1, [R0, #48]
+<span id="A08001a2c">  0x08001A2C:  </span>6342         STR        R2, [R0, #52]
+<span id="A08001a2e">  0x08001A2E:  </span>6381         STR        R1, [R0, #56]
+<span id="A08001a30">  0x08001A30:  </span>63C2         STR        R2, [R0, #60]
+<span id="A08001a32">  0x08001A32:  </span>6401         STR        R1, [R0, #64]
+<span id="A08001a34">  0x08001A34:  </span>6442         STR        R2, [R0, #68]
+<span id="A08001a36">  0x08001A36:  </span>6801         LDR        R1, [R0]
+<span id="A08001a38">  0x08001A38:  </span>F421 2180    BIC        R1, R1, #0x040000
+<span id="A08001a3c">  0x08001A3C:  </span>6001         STR        R1, [R0]
+<span id="A08001a3e">  0x08001A3E:  </span>6602         STR        R2, [R0, #96]
+<span id="A08001a40">  0x08001A40:  </span>F503 5000    ADD.W      R0, R3, #0x2000
+<span id="A08001a44">  0x08001A44:  </span>F243 01D2    MOVW       R1, #0x30D2
+<span id="A08001a48">  0x08001A48:  </span>6001         STR        R1, [R0]
+<span id="A08001a4a">  0x08001A4A:  </span>4770         BX         LR
 </pre>
-<h2 id="ABSOLUTE LISTING_Section .text.NMI_Handler from charger_lto.o, size=2, align=2">Section .text.NMI_Handler from charger_lto.o, size=2, align=2</h2>
+<h2 id="ABSOLUTE LISTING_Section .text.HAL_InitTick from charger_lto.o, size=90, align=2">Section .text.HAL_InitTick from charger_lto.o, size=90, align=2</h2>
 <pre>
-<br/><span id="
-	#">NMI_Handler:</span>
-<span id="	#">HardFault_Handler:</span>
-<span id="Þ	#">MemManage_Handler:</span>
-<span id="e	#">BusFault_Handler:</span>
-<span id="|	#">UsageFault_Handler:</span>
-<span id="é{
-#">WWDG_IRQHandler:</span>
-<span id="ù{
-#">PVD_AVD_IRQHandler:</span>
-<span id="
-|
-#">TAMP_STAMP_IRQHandler:</span>
-<span id=""|
-#">RTC_WKUP_IRQHandler:</span>
-<span id="6|
-#">FLASH_IRQHandler:</span>
-<span id="G|
-#">RCC_IRQHandler:</span>
-<span id="V|
-#">EXTI0_IRQHandler:</span>
-<span id="g|
-#">EXTI1_IRQHandler:</span>
-<span id="x|
-#">EXTI2_IRQHandler:</span>
-<span id="|
-#">EXTI3_IRQHandler:</span>
-<span id="|
-#">EXTI4_IRQHandler:</span>
-<span id="«|
-#">DMA1_Stream0_IRQHandler:</span>
-<span id="Ã|
-#">DMA1_Stream1_IRQHandler:</span>
-<span id="Û|
-#">DMA1_Stream2_IRQHandler:</span>
-<span id="ó|
-#">DMA1_Stream3_IRQHandler:</span>
-<span id="
-}
-#">DMA1_Stream4_IRQHandler:</span>
-<span id="#}
-#">DMA1_Stream5_IRQHandler:</span>
-<span id=";}
-#">DMA1_Stream6_IRQHandler:</span>
-<span id="S}
-#">ADC_IRQHandler:</span>
-<span id="b}
-#">FDCAN1_IT0_IRQHandler:</span>
-<span id="x}
-#">FDCAN2_IT0_IRQHandler:</span>
-<span id="}
-#">FDCAN1_IT1_IRQHandler:</span>
-<span id="¤}
-#">FDCAN2_IT1_IRQHandler:</span>
-<span id="º}
-#">EXTI9_5_IRQHandler:</span>
-<span id="Í}
-#">TIM1_BRK_IRQHandler:</span>
-<span id="á}
-#">TIM1_UP_IRQHandler:</span>
-<span id="ô}
-#">TIM1_TRG_COM_IRQHandler:</span>
-<span id="
-~
-#">TIM1_CC_IRQHandler:</span>
-<span id="
-#">TIM2_IRQHandler:</span>
-<span id="¨
-#">TIM3_IRQHandler:</span>
-<span id="º
-#">TIM4_IRQHandler:</span>
-<span id="~
-#">I2C1_EV_IRQHandler:</span>
-<span id="2~
-#">I2C1_ER_IRQHandler:</span>
-<span id="E~
-#">I2C2_EV_IRQHandler:</span>
-<span id="X~
-#">I2C2_ER_IRQHandler:</span>
-<span id="
-#">SPI1_IRQHandler:</span>
-<span id="F
-
-#">SPI2_IRQHandler:</span>
-<span id="k~
-#">USART1_IRQHandler:</span>
-<span id="}~
-#">USART2_IRQHandler:</span>
-<span id="~
-#">USART3_IRQHandler:</span>
-<span id="¡~
-#">EXTI15_10_IRQHandler:</span>
-<span id="¶~
-#">RTC_Alarm_IRQHandler:</span>
-<span id="Ë~
-#">TIM8_BRK_TIM12_IRQHandler:</span>
-<span id="å~
-#">TIM8_UP_TIM13_IRQHandler:</span>
-<span id="þ~
-#">TIM8_TRG_COM_TIM14_IRQHandler:</span>
-<span id="
-
-#">TIM8_CC_IRQHandler:</span>
-<span id="/
-#">DMA1_Stream7_IRQHandler:</span>
-<span id="G
-#">FMC_IRQHandler:</span>
-<span id="V
-#">SDMMC1_IRQHandler:</span>
-<span id="Ì
-#">TIM5_IRQHandler:</span>
-<span id="h
-#">SPI3_IRQHandler:</span>
-<span id="x
-#">UART4_IRQHandler:</span>
-<span id="
-#">UART5_IRQHandler:</span>
-<span id="
-#">TIM6_DAC_IRQHandler:</span>
-<span id="®
-#">TIM7_IRQHandler:</span>
-<span id="¾
-#">DMA2_Stream0_IRQHandler:</span>
-<span id="Ö
-#">DMA2_Stream1_IRQHandler:</span>
-<span id="î
-#">DMA2_Stream2_IRQHandler:</span>
-<span id="
-#">DMA2_Stream3_IRQHandler:</span>
-<span id="
-
-#">DMA2_Stream4_IRQHandler:</span>
-<span id="6
-#">ETH_IRQHandler:</span>
-<span id="E
-#">ETH_WKUP_IRQHandler:</span>
-<span id="Y
-#">FDCAN_CAL_IRQHandler:</span>
-<span id="n
-#">DMA2_Stream5_IRQHandler:</span>
-<span id="
-#">DMA2_Stream6_IRQHandler:</span>
-<span id="
-#">DMA2_Stream7_IRQHandler:</span>
-<span id="¶
-#">USART6_IRQHandler:</span>
-<span id="È
-#">I2C3_EV_IRQHandler:</span>
-<span id="Û
-#">I2C3_ER_IRQHandler:</span>
-<span id="î
-#">OTG_HS_EP1_OUT_IRQHandler:</span>
-<span id="
-#">OTG_HS_EP1_IN_IRQHandler:</span>
-<span id="!
-#">OTG_HS_WKUP_IRQHandler:</span>
-<span id="8
-#">OTG_HS_IRQHandler:</span>
-<span id="J
-#">DCMI_PSSI_IRQHandler:</span>
-<span id="_
-#">RNG_IRQHandler:</span>
-<span id="n
-#">FPU_IRQHandler:</span>
-<span id="}
-#">UART7_IRQHandler:</span>
-<span id="
-#">UART8_IRQHandler:</span>
-<span id="
-#">SPI4_IRQHandler:</span>
-<span id="¯
-#">SPI5_IRQHandler:</span>
-<span id="¿
-#">SPI6_IRQHandler:</span>
-<span id="Ï
-#">SAI1_IRQHandler:</span>
-<span id="ß
-#">LTDC_IRQHandler:</span>
-<span id="ï
-#">LTDC_ER_IRQHandler:</span>
-<span id="
-#">DMA2D_IRQHandler:</span>
-<span id="
-#">OCTOSPI1_IRQHandler:</span>
-<span id="'
-#">LPTIM1_IRQHandler:</span>
-<span id="9
-#">CEC_IRQHandler:</span>
-<span id="H
-#">I2C4_EV_IRQHandler:</span>
-<span id="[
-#">I2C4_ER_IRQHandler:</span>
-<span id="n
-#">SPDIF_RX_IRQHandler:</span>
-<span id="
-#">DMAMUX1_OVR_IRQHandler:</span>
-<span id="
-#">DFSDM1_FLT0_IRQHandler:</span>
-<span id="°
-#">DFSDM1_FLT1_IRQHandler:</span>
-<span id="Ç
-#">DFSDM1_FLT2_IRQHandler:</span>
-<span id="Þ
-#">DFSDM1_FLT3_IRQHandler:</span>
-<span id="õ
-#">SWPMI1_IRQHandler:</span>
-<span id="
-#">TIM15_IRQHandler:</span>
-<span id="
-#">TIM16_IRQHandler:</span>
-<span id=")
-#">TIM17_IRQHandler:</span>
-<span id=":
-#">MDIOS_WKUP_IRQHandler:</span>
-<span id="P
-#">MDIOS_IRQHandler:</span>
-<span id="a
-#">MDMA_IRQHandler:</span>
-<span id="q
-#">SDMMC2_IRQHandler:</span>
-<span id="
-#">HSEM1_IRQHandler:</span>
-<span id="
-#">ADC3_IRQHandler:</span>
-<span id="¤
-#">DMAMUX2_OVR_IRQHandler:</span>
-<span id="»
-#">BDMA_Channel0_IRQHandler:</span>
-<span id="Ô
-#">BDMA_Channel1_IRQHandler:</span>
-<span id="í
-#">BDMA_Channel2_IRQHandler:</span>
-<span id="
-#">BDMA_Channel3_IRQHandler:</span>
-<span id="
-#">BDMA_Channel4_IRQHandler:</span>
-<span id="8
-#">BDMA_Channel5_IRQHandler:</span>
-<span id="Q
-#">BDMA_Channel6_IRQHandler:</span>
-<span id="j
-#">BDMA_Channel7_IRQHandler:</span>
-<span id="
-#">COMP1_IRQHandler:</span>
-<span id="
-#">LPTIM2_IRQHandler:</span>
-<span id="¦
-#">LPTIM3_IRQHandler:</span>
-<span id="¸
-#">LPTIM4_IRQHandler:</span>
-<span id="Ê
-#">LPTIM5_IRQHandler:</span>
-<span id="Ü
-#">LPUART1_IRQHandler:</span>
-<span id="ï
-#">CRS_IRQHandler:</span>
-<span id="þ
-#">ECC_IRQHandler:</span>
-<span id="
-
-
-#">SAI4_IRQHandler:</span>
-<span id="
-
-
-#">DTS_IRQHandler:</span>
-<span id=",
-
-#">WAKEUP_PIN_IRQHandler:</span>
-<span id="B
-
-#">OCTOSPI2_IRQHandler:</span>
-<span id="V
-
-#">FMAC_IRQHandler:</span>
-<span id="f
-
-#">CORDIC_IRQHandler:</span>
-<span id="x
-
-#">UART9_IRQHandler:</span>
-<span id="
-
-#">USART10_IRQHandler:</span>
-<span id="
-
-#">I2C5_EV_IRQHandler:</span>
-<span id="¯
-
-#">I2C5_ER_IRQHandler:</span>
-<span id="Â
-
-#">FDCAN3_IT0_IRQHandler:</span>
-<span id="Ø
-
-#">FDCAN3_IT1_IRQHandler:</span>
-<span id="î
-
-#">TIM23_IRQHandler:</span>
-<span id="ÿ
-
-#">TIM24_IRQHandler:</span>
-<span id="A080007ac">  0x080007AC:  </span>E7FE         B          <a href="#`íu²i">NMI_Handler</a>              ; Dedupe identical section .init.TIM24_IRQHandler
-</pre>
-<h2 id="ABSOLUTE LISTING_Section .text.SVC_Handler from charger_lto.o, size=2, align=2">Section .text.SVC_Handler from charger_lto.o, size=2, align=2</h2>
-<pre>
-<br/><span id="
-	#">SVC_Handler:</span>
-<span id="­	#">DebugMon_Handler:</span>
-<span id="ö	#">PendSV_Handler:</span>
-<span id="A080007ae">  0x080007AE:  </span>4770         BX         LR                       ; Dedupe identical section .text.PendSV_Handler
-</pre>
-<h2 id="ABSOLUTE LISTING_Section .text.HAL_Init from charger_lto.o, size=114, align=2">Section .text.HAL_Init from charger_lto.o, size=114, align=2</h2>
-<pre>
-<br/><span id="Ç	#">HAL_Init:</span>
-<span id="A080007b0">  0x080007B0:  </span>B510         PUSH       {R4, LR}
-<span id="A080007b2">  0x080007B2:  </span>B082         SUB        SP, SP, #8
-<span id="A080007b4">  0x080007B4:  </span>F64E 500C    MOVW       R0, #0xED0C
-<span id="A080007b8">  0x080007B8:  </span>F64F 02FF    MOVW       R2, #0xF8FF
-<span id="A080007bc">  0x080007BC:  </span>F2CE 0000    MOVT       R0, #0xE000
-<span id="A080007c0">  0x080007C0:  </span>F244 4418    MOVW       R4, #0x4418
-<span id="A080007c4">  0x080007C4:  </span>F6C5 0402    MOVT       R4, #0x5802
-<span id="A080007c8">  0x080007C8:  </span>6801         LDR        R1, [R0]
-<span id="A080007ca">  0x080007CA:  </span>4011         ANDS       R1, R2
-<span id="A080007cc">  0x080007CC:  </span>F240 3200    MOVW       R2, #0x0300
-<span id="A080007d0">  0x080007D0:  </span>F2C0 52FA    MOVT       R2, #0x05FA
-<span id="A080007d4">  0x080007D4:  </span>4311         ORRS       R1, R2
-<span id="A080007d6">  0x080007D6:  </span>6001         STR        R1, [R0]
-<span id="A080007d8">  0x080007D8:  </span>F7FF FD78    BL         <a href="#`ïÙ#">HAL_RCC_GetSysClockFreq</a>  ; 0x080002CC
-<span id="A080007dc">  0x080007DC:  </span>6821         LDR        R1, [R4]
-<span id="A080007de">  0x080007DE:  </span>F640 32AE    MOVW       R2, #0x0BAE              ; 0x08000BAE = D1CorePrescTable
-<span id="A080007e2">  0x080007E2:  </span>F6C0 0200    MOVT       R2, #0x0800              ; 0x08000BAE = D1CorePrescTable
-<span id="A080007e6">  0x080007E6:  </span>F3C1 2103    UBFX       R1, R1, #8, #4
-<span id="A080007ea">  0x080007EA:  </span>5C51         LDRB       R1, [R2, R1]
-<span id="A080007ec">  0x080007EC:  </span>6822         LDR        R2, [R4]
-<span id="A080007ee">  0x080007EE:  </span>F001 011F    AND        R1, R1, #31
-<span id="A080007f2">  0x080007F2:  </span>40C8         LSRS       R0, R1
-<span id="A080007f4">  0x080007F4:  </span>F240 012C    MOVW       R1, #44                  ; 0x3000002C = SystemCoreClock
-<span id="A080007f8">  0x080007F8:  </span>F2C3 0100    MOVT       R1, #0x3000              ; 0x3000002C = SystemCoreClock
-<span id="A080007fc">  0x080007FC:  </span>6008         STR        R0, [R1]
-<span id="A080007fe">  0x080007FE:  </span>200F         MOVS       R0, #15
-<span id="A08000800">  0x08000800:  </span>F000 F989    BL         <a href="#`íu²i">HAL_InitTick</a>             ; 0x08000B16
-<span id="A08000804">  0x08000804:  </span>B958         CBNZ       R0, .L1                  ; 0x0800081E
-<span id="A08000806">  0x08000806:  </span>F8D4 00DC    LDR.W      R0, [R4, #220]
-<span id="A0800080a">  0x0800080A:  </span>F040 0002    ORR        R0, R0, #2
-<span id="A0800080e">  0x0800080E:  </span>F8C4 00DC    STR.W      R0, [R4, #220]
-<span id="A08000812">  0x08000812:  </span>F8D4 00DC    LDR.W      R0, [R4, #220]
-<span id="A08000816">  0x08000816:  </span>F000 0002    AND        R0, R0, #2
-<span id="A0800081a">  0x0800081A:  </span>9001         STR        R0, [SP, #4]
-<span id="A0800081c">  0x0800081C:  </span>9801         LDR        R0, [SP, #4]
+<br/><span id="ÑyÑ
+D">HAL_InitTick:</span>
+<span id="A08001a4c">  0x08001A4C:  </span>B510         PUSH       {R4, LR}
+<span id="A08001a4e">  0x08001A4E:  </span>F240 112C    MOVW       R1, #0x012C              ; 0x3000012C = SystemCoreClock
+<span id="A08001a52">  0x08001A52:  </span>F644 52D3    MOVW       R2, #0x4DD3
+<span id="A08001a56">  0x08001A56:  </span>F2C3 0100    MOVT       R1, #0x3000              ; 0x3000012C = SystemCoreClock
+<span id="A08001a5a">  0x08001A5A:  </span>F2C1 0262    MOVT       R2, #0x1062
+<span id="A08001a5e">  0x08001A5E:  </span>2401         MOVS       R4, #1
+<span id="A08001a60">  0x08001A60:  </span>6809         LDR        R1, [R1]
+<span id="A08001a62">  0x08001A62:  </span>FBA1 1202    UMULL      R1, R2, R1, R2
+<span id="A08001a66">  0x08001A66:  </span>1EA1         SUBS       R1, R4, #2
+<span id="A08001a68">  0x08001A68:  </span>EB01 1192    ADD.W      R1, R1, R2, LSR #6
+<span id="A08001a6c">  0x08001A6C:  </span>0E0A         LSRS       R2, R1, #24
+<span id="A08001a6e">  0x08001A6E:  </span>D118         BNE        .L1                      ; 0x08001AA2
+<span id="A08001a70">  0x08001A70:  </span>F24E 0210    MOVW       R2, #0xE010
+<span id="A08001a74">  0x08001A74:  </span>23F0         MOVS       R3, #240
+<span id="A08001a76">  0x08001A76:  </span>F2CE 0200    MOVT       R2, #0xE000
+<span id="A08001a7a">  0x08001A7A:  </span>6051         STR        R1, [R2, #4]
+<span id="A08001a7c">  0x08001A7C:  </span>F602 5113    ADDW       R1, R2, #0x0D13
+<span id="A08001a80">  0x08001A80:  </span>700B         STRB       R3, [R1]
+<span id="A08001a82">  0x08001A82:  </span>2100         MOVS       R1, #0
+<span id="A08001a84">  0x08001A84:  </span>6091         STR        R1, [R2, #8]
+<span id="A08001a86">  0x08001A86:  </span>2107         MOVS       R1, #7
+<span id="A08001a88">  0x08001A88:  </span>280F         CMP        R0, #15
+<span id="A08001a8a">  0x08001A8A:  </span>6011         STR        R1, [R2]
+<span id="A08001a8c">  0x08001A8C:  </span>D809         BHI        .L1                      ; 0x08001AA2
+<span id="A08001a8e">  0x08001A8E:  </span>1EA0         SUBS       R0, R4, #2
+<span id="A08001a90">  0x08001A90:  </span>210F         MOVS       R1, #15
+<span id="A08001a92">  0x08001A92:  </span>F000 FA25    BL         <a href="#ðb­D">HAL_NVIC_SetPriority</a>     ; 0x08001EE0
+<span id="A08001a96">  0x08001A96:  </span>F240 1028    MOVW       R0, #0x0128              ; 0x30000128 = uwTickPrio
+<span id="A08001a9a">  0x08001A9A:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000128 = uwTickPrio
+<span id="A08001a9e">  0x08001A9E:  </span>7004         STRB       R4, [R0]
+<span id="A08001aa0">  0x08001AA0:  </span>2400         MOVS       R4, #0
 <br/>.L1:
-<span id="A0800081e">  0x0800081E:  </span>B002         ADD        SP, SP, #8
-<span id="A08000820">  0x08000820:  </span>BD10         POP        {R4, PC}
-</pre>
-<h2 id="ABSOLUTE LISTING_Section .text.HAL_RTC_Init from charger_lto.o, size=382, align=2">Section .text.HAL_RTC_Init from charger_lto.o, size=382, align=2</h2>
-<pre>
-<br/><span id="Ú	#">HAL_RTC_Init:</span>
-<span id="A08000822">  0x08000822:  </span>B570         PUSH       {R4-R6, LR}
-<span id="A08000824">  0x08000824:  </span>F240 0604    MOVW       R6, #4                   ; 0x30000000 = hrtc
-<span id="A08000828">  0x08000828:  </span>F2C3 0600    MOVT       R6, #0x3000              ; 0x30000000 = hrtc
-<span id="A0800082c">  0x0800082C:  </span>7F70         LDRB       R0, [R6, #29]
-<span id="A0800082e">  0x0800082E:  </span>2800         CMP        R0, #0
-<span id="A08000830">  0x08000830:  </span>F856 0C04    LDR        R0, [R6, #-4]
-<span id="A08000834">  0x08000834:  </span>D149         BNE        .L7                      ; 0x080008CA
-<span id="A08000836">  0x08000836:  </span>F244 0100    MOVW       R1, #0x4000
-<span id="A0800083a">  0x0800083A:  </span>F6C5 0100    MOVT       R1, #0x5800
-<span id="A0800083e">  0x0800083E:  </span>4288         CMP        R0, R1
-<span id="A08000840">  0x08000840:  </span>F04F 0100    MOV.W      R1, #0
-<span id="A08000844">  0x08000844:  </span>7731         STRB       R1, [R6, #28]
-<span id="A08000846">  0x08000846:  </span>D140         BNE        .L7                      ; 0x080008CA
-<span id="A08000848">  0x08000848:  </span>F244 4110    MOVW       R1, #0x4410
-<span id="A0800084c">  0x0800084C:  </span>F6C5 0102    MOVT       R1, #0x5802
-<span id="A08000850">  0x08000850:  </span>F8D1 23F0    LDR.W      R2, [R1, #0x03F0]
-<span id="A08000854">  0x08000854:  </span>F442 7280    ORR        R2, R2, #0x0100
-<span id="A08000858">  0x08000858:  </span>F8C1 23F0    STR.W      R2, [R1, #0x03F0]
-<span id="A0800085c">  0x0800085C:  </span>F240 0224    MOVW       R2, #36                  ; 0x30000024 = uwTick
-<span id="A08000860">  0x08000860:  </span>F2C3 0200    MOVT       R2, #0x3000              ; 0x30000024 = uwTick
-<span id="A08000864">  0x08000864:  </span>6813         LDR        R3, [R2]
-<br/>.L1:
-<span id="A08000866">  0x08000866:  </span>F8D1 53F0    LDR.W      R5, [R1, #0x03F0]
-<span id="A0800086a">  0x0800086A:  </span>05ED         LSLS       R5, R5, #23
-<span id="A0800086c">  0x0800086C:  </span>D404         BMI        .L2                      ; 0x08000878
-<span id="A0800086e">  0x0800086E:  </span>6815         LDR        R5, [R2]
-<span id="A08000870">  0x08000870:  </span>1AED         SUBS       R5, R5, R3
-<span id="A08000872">  0x08000872:  </span>2D64         CMP        R5, #100
-<span id="A08000874">  0x08000874:  </span>D9F7         BLS        .L1                      ; 0x08000866
-<span id="A08000876">  0x08000876:  </span>E01B         B          .L5                      ; 0x080008B0
-<br/>.L2:
-<span id="A08000878">  0x08000878:  </span>6E0B         LDR        R3, [R1, #96]
-<span id="A0800087a">  0x0800087A:  </span>F403 7340    AND        R3, R3, #0x0300
-<span id="A0800087e">  0x0800087E:  </span>F5B3 7F80    CMP.W      R3, #0x0100
-<span id="A08000882">  0x08000882:  </span>D00B         BEQ        .L3                      ; 0x0800089C
-<span id="A08000884">  0x08000884:  </span>6E0B         LDR        R3, [R1, #96]
-<span id="A08000886">  0x08000886:  </span>6E0D         LDR        R5, [R1, #96]
-<span id="A08000888">  0x08000888:  </span>F445 3580    ORR        R5, R5, #0x010000
-<span id="A0800088c">  0x0800088C:  </span>660D         STR        R5, [R1, #96]
-<span id="A0800088e">  0x0800088E:  </span>6E0D         LDR        R5, [R1, #96]
-<span id="A08000890">  0x08000890:  </span>F423 7340    BIC        R3, R3, #0x0300
-<span id="A08000894">  0x08000894:  </span>F425 3580    BIC        R5, R5, #0x010000
-<span id="A08000898">  0x08000898:  </span>660D         STR        R5, [R1, #96]
-<span id="A0800089a">  0x0800089A:  </span>660B         STR        R3, [R1, #96]
-<br/>.L3:
-<span id="A0800089c">  0x0800089C:  </span>6813         LDR        R3, [R2]
-<span id="A0800089e">  0x0800089E:  </span>F241 3589    MOVW       R5, #0x1389
-<br/>.L4:
-<span id="A080008a2">  0x080008A2:  </span>6E0C         LDR        R4, [R1, #96]
-<span id="A080008a4">  0x080008A4:  </span>07A4         LSLS       R4, R4, #30
-<span id="A080008a6">  0x080008A6:  </span>D404         BMI        .L6                      ; 0x080008B2
-<span id="A080008a8">  0x080008A8:  </span>6814         LDR        R4, [R2]
-<span id="A080008aa">  0x080008AA:  </span>1AE4         SUBS       R4, R4, R3
-<span id="A080008ac">  0x080008AC:  </span>42AC         CMP        R4, R5
-<span id="A080008ae">  0x080008AE:  </span>D3F8         BCC        .L4                      ; 0x080008A2
-<br/>.L5:
-<span id="A080008b0">  0x080008B0:  </span>B672         CPSID      i
-<br/>.L6:
-<span id="A080008b2">  0x080008B2:  </span>680A         LDR        R2, [R1]
-<span id="A080008b4">  0x080008B4:  </span>F422 527C    BIC        R2, R2, #0x3F00
-<span id="A080008b8">  0x080008B8:  </span>600A         STR        R2, [R1]
-<span id="A080008ba">  0x080008BA:  </span>6E0A         LDR        R2, [R1, #96]
-<span id="A080008bc">  0x080008BC:  </span>F442 7280    ORR        R2, R2, #0x0100
-<span id="A080008c0">  0x080008C0:  </span>660A         STR        R2, [R1, #96]
-<span id="A080008c2">  0x080008C2:  </span>6E0A         LDR        R2, [R1, #96]
-<span id="A080008c4">  0x080008C4:  </span>F442 4200    ORR        R2, R2, #0x8000
-<span id="A080008c8">  0x080008C8:  </span>660A         STR        R2, [R1, #96]
-<br/>.L7:
-<span id="A080008ca">  0x080008CA:  </span>2102         MOVS       R1, #2
-<span id="A080008cc">  0x080008CC:  </span>7771         STRB       R1, [R6, #29]
-<span id="A080008ce">  0x080008CE:  </span>68C1         LDR        R1, [R0, #12]
-<span id="A080008d0">  0x080008D0:  </span>06C9         LSLS       R1, R1, #27
-<span id="A080008d2">  0x080008D2:  </span>D461         BMI        .L14                     ; 0x08000998
-<span id="A080008d4">  0x080008D4:  </span>21CA         MOVS       R1, #202
-<span id="A080008d6">  0x080008D6:  </span>6241         STR        R1, [R0, #36]
-<span id="A080008d8">  0x080008D8:  </span>2153         MOVS       R1, #83
-<span id="A080008da">  0x080008DA:  </span>6241         STR        R1, [R0, #36]
-<span id="A080008dc">  0x080008DC:  </span>68C1         LDR        R1, [R0, #12]
-<span id="A080008de">  0x080008DE:  </span>0649         LSLS       R1, R1, #25
-<span id="A080008e0">  0x080008E0:  </span>D413         BMI        .L9                      ; 0x0800090A
-<span id="A080008e2">  0x080008E2:  </span>F04F 31FF    MOV.W      R1, #0xFFFFFFFF
-<span id="A080008e6">  0x080008E6:  </span>60C1         STR        R1, [R0, #12]
-<span id="A080008e8">  0x080008E8:  </span>F240 0124    MOVW       R1, #36                  ; 0x30000024 = uwTick
-<span id="A080008ec">  0x080008EC:  </span>F2C3 0100    MOVT       R1, #0x3000              ; 0x30000024 = uwTick
-<span id="A080008f0">  0x080008F0:  </span>680A         LDR        R2, [R1]
-<br/>.L8:
-<span id="A080008f2">  0x080008F2:  </span>68C3         LDR        R3, [R0, #12]
-<span id="A080008f4">  0x080008F4:  </span>065B         LSLS       R3, R3, #25
-<span id="A080008f6">  0x080008F6:  </span>D408         BMI        .L9                      ; 0x0800090A
-<span id="A080008f8">  0x080008F8:  </span>680B         LDR        R3, [R1]
-<span id="A080008fa">  0x080008FA:  </span>1A9B         SUBS       R3, R3, R2
-<span id="A080008fc">  0x080008FC:  </span>F5B3 7F7A    CMP.W      R3, #0x03E8
-<span id="A08000900">  0x08000900:  </span>D9F7         BLS        .L8                      ; 0x080008F2
-<span id="A08000902">  0x08000902:  </span>2103         MOVS       R1, #3
-<span id="A08000904">  0x08000904:  </span>7771         STRB       R1, [R6, #29]
-<span id="A08000906">  0x08000906:  </span>68C0         LDR        R0, [R0, #12]
-<span id="A08000908">  0x08000908:  </span>E02E         B          .L11                     ; 0x08000968
-<br/>.L9:
-<span id="A0800090a">  0x0800090A:  </span>6881         LDR        R1, [R0, #8]
-<span id="A0800090c">  0x0800090C:  </span>F244 0508    MOVW       R5, #0x4008
-<span id="A08000910">  0x08000910:  </span>F421 01E0    BIC        R1, R1, #0x700000
-<span id="A08000914">  0x08000914:  </span>F6C5 0500    MOVT       R5, #0x5800
-<span id="A08000918">  0x08000918:  </span>F021 0140    BIC        R1, R1, #64
-<span id="A0800091c">  0x0800091C:  </span>6081         STR        R1, [R0, #8]
-<span id="A0800091e">  0x0800091E:  </span>E896 001E    LDM.W      R6, {R1-R4}
-<span id="A08000922">  0x08000922:  </span>4321         ORRS       R1, R4
-<span id="A08000924">  0x08000924:  </span>6974         LDR        R4, [R6, #20]
-<span id="A08000926">  0x08000926:  </span>4321         ORRS       R1, R4
-<span id="A08000928">  0x08000928:  </span>6884         LDR        R4, [R0, #8]
-<span id="A0800092a">  0x0800092A:  </span>4321         ORRS       R1, R4
-<span id="A0800092c">  0x0800092C:  </span>6081         STR        R1, [R0, #8]
-<span id="A0800092e">  0x0800092E:  </span>EA43 4102    ORR.W      R1, R3, R2, LSL #16
-<span id="A08000932">  0x08000932:  </span>6101         STR        R1, [R0, #16]
-<span id="A08000934">  0x08000934:  </span>6868         LDR        R0, [R5, #4]
-<span id="A08000936">  0x08000936:  </span>F020 0080    BIC        R0, R0, #128
-<span id="A0800093a">  0x0800093A:  </span>6068         STR        R0, [R5, #4]
-<span id="A0800093c">  0x0800093C:  </span>6828         LDR        R0, [R5]
-<span id="A0800093e">  0x0800093E:  </span>0680         LSLS       R0, R0, #26
-<span id="A08000940">  0x08000940:  </span>D405         BMI        .L10                     ; 0x0800094E
-<span id="A08000942">  0x08000942:  </span>F000 F82D    BL         <a href="#`ïÙ#">HAL_RTC_WaitForSynchro</a>   ; 0x080009A0
-<span id="A08000946">  0x08000946:  </span>B1C8         CBZ        R0, .L13                 ; 0x0800097C
-<span id="A08000948">  0x08000948:  </span>2003         MOVS       R0, #3
-<span id="A0800094a">  0x0800094A:  </span>7770         STRB       R0, [R6, #29]
-<span id="A0800094c">  0x0800094C:  </span>E00C         B          .L11                     ; 0x08000968
-<br/>.L10:
-<span id="A0800094e">  0x0800094E:  </span>6828         LDR        R0, [R5]
-<span id="A08000950">  0x08000950:  </span>F020 0020    BIC        R0, R0, #32
-<span id="A08000954">  0x08000954:  </span>6028         STR        R0, [R5]
-<span id="A08000956">  0x08000956:  </span>F000 F823    BL         <a href="#`ïÙ#">HAL_RTC_WaitForSynchro</a>   ; 0x080009A0
-<span id="A0800095a">  0x0800095A:  </span>B158         CBZ        R0, .L12                 ; 0x08000974
-<span id="A0800095c">  0x0800095C:  </span>2003         MOVS       R0, #3
-<span id="A0800095e">  0x0800095E:  </span>7770         STRB       R0, [R6, #29]
-<span id="A08000960">  0x08000960:  </span>6828         LDR        R0, [R5]
-<span id="A08000962">  0x08000962:  </span>F040 0020    ORR        R0, R0, #32
-<span id="A08000966">  0x08000966:  </span>6028         STR        R0, [R5]
-<br/>.L11:
-<span id="A08000968">  0x08000968:  </span>F856 0C04    LDR        R0, [R6, #-4]
-<span id="A0800096c">  0x0800096C:  </span>21FF         MOVS       R1, #255
-<span id="A0800096e">  0x0800096E:  </span>6241         STR        R1, [R0, #36]
-<span id="A08000970">  0x08000970:  </span>2003         MOVS       R0, #3
-<span id="A08000972">  0x08000972:  </span>BD70         POP        {R4-R6, PC}
-<br/>.L12:
-<span id="A08000974">  0x08000974:  </span>6828         LDR        R0, [R5]
-<span id="A08000976">  0x08000976:  </span>F040 0020    ORR        R0, R0, #32
-<span id="A0800097a">  0x0800097A:  </span>6028         STR        R0, [R5]
-<br/>.L13:
-<span id="A0800097c">  0x0800097C:  </span>F856 0C04    LDR        R0, [R6, #-4]
-<span id="A08000980">  0x08000980:  </span>6931         LDR        R1, [R6, #16]
-<span id="A08000982">  0x08000982:  </span>69B2         LDR        R2, [R6, #24]
-<span id="A08000984">  0x08000984:  </span>6CC3         LDR        R3, [R0, #76]
-<span id="A08000986">  0x08000986:  </span>4311         ORRS       R1, R2
-<span id="A08000988">  0x08000988:  </span>F023 0303    BIC        R3, R3, #3
-<span id="A0800098c">  0x0800098C:  </span>64C3         STR        R3, [R0, #76]
-<span id="A0800098e">  0x0800098E:  </span>6CC2         LDR        R2, [R0, #76]
-<span id="A08000990">  0x08000990:  </span>4311         ORRS       R1, R2
-<span id="A08000992">  0x08000992:  </span>64C1         STR        R1, [R0, #76]
-<span id="A08000994">  0x08000994:  </span>21FF         MOVS       R1, #255
-<span id="A08000996">  0x08000996:  </span>6241         STR        R1, [R0, #36]
-<br/>.L14:
-<span id="A08000998">  0x08000998:  </span>2001         MOVS       R0, #1
-<span id="A0800099a">  0x0800099A:  </span>7770         STRB       R0, [R6, #29]
-<span id="A0800099c">  0x0800099C:  </span>2000         MOVS       R0, #0
-<span id="A0800099e">  0x0800099E:  </span>BD70         POP        {R4-R6, PC}
+<span id="A08001aa2">  0x08001AA2:  </span>4620         MOV        R0, R4
+<span id="A08001aa4">  0x08001AA4:  </span>BD10         POP        {R4, PC}
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .text.HAL_RTC_WaitForSynchro from charger_lto.o, size=54, align=2">Section .text.HAL_RTC_WaitForSynchro from charger_lto.o, size=54, align=2</h2>
 <pre>
-<br/><span id="Q	#">HAL_RTC_WaitForSynchro:</span>
-<span id="A080009a0">  0x080009A0:  </span>F240 0000    MOVW       R0, #0                   ; 0x30000000 = hrtc
-<span id="A080009a4">  0x080009A4:  </span>F64F 715F    MOVW       R1, #0xFF5F
-<span id="A080009a8">  0x080009A8:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000000 = hrtc
-<span id="A080009ac">  0x080009AC:  </span>F2C0 0103    MOVT       R1, #3
-<span id="A080009b0">  0x080009B0:  </span>6800         LDR        R0, [R0]
-<span id="A080009b2">  0x080009B2:  </span>60C1         STR        R1, [R0, #12]
-<span id="A080009b4">  0x080009B4:  </span>F240 0124    MOVW       R1, #36                  ; 0x30000024 = uwTick
-<span id="A080009b8">  0x080009B8:  </span>F2C3 0100    MOVT       R1, #0x3000              ; 0x30000024 = uwTick
-<span id="A080009bc">  0x080009BC:  </span>680A         LDR        R2, [R1]
+<br/><span id="_yÑ
+D">HAL_RTC_WaitForSynchro:</span>
+<span id="A08001aa6">  0x08001AA6:  </span>F240 1000    MOVW       R0, #0x0100              ; 0x30000100 = hrtc
+<span id="A08001aaa">  0x08001AAA:  </span>F64F 715F    MOVW       R1, #0xFF5F
+<span id="A08001aae">  0x08001AAE:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000100 = hrtc
+<span id="A08001ab2">  0x08001AB2:  </span>F2C0 0103    MOVT       R1, #3
+<span id="A08001ab6">  0x08001AB6:  </span>6800         LDR        R0, [R0]
+<span id="A08001ab8">  0x08001AB8:  </span>60C1         STR        R1, [R0, #12]
+<span id="A08001aba">  0x08001ABA:  </span>F240 1124    MOVW       R1, #0x0124              ; 0x30000124 = uwTick
+<span id="A08001abe">  0x08001ABE:  </span>F2C3 0100    MOVT       R1, #0x3000              ; 0x30000124 = uwTick
+<span id="A08001ac2">  0x08001AC2:  </span>680A         LDR        R2, [R1]
 <br/>.L1:
-<span id="A080009be">  0x080009BE:  </span>68C3         LDR        R3, [R0, #12]
-<span id="A080009c0">  0x080009C0:  </span>069B         LSLS       R3, R3, #26
-<span id="A080009c2">  0x080009C2:  </span>D406         BMI        .L2                      ; 0x080009D2
-<span id="A080009c4">  0x080009C4:  </span>680B         LDR        R3, [R1]
-<span id="A080009c6">  0x080009C6:  </span>1A9B         SUBS       R3, R3, R2
-<span id="A080009c8">  0x080009C8:  </span>F5B3 7F7A    CMP.W      R3, #0x03E8
-<span id="A080009cc">  0x080009CC:  </span>D9F7         BLS        .L1                      ; 0x080009BE
-<span id="A080009ce">  0x080009CE:  </span>2003         MOVS       R0, #3
-<span id="A080009d0">  0x080009D0:  </span>4770         BX         LR
+<span id="A08001ac4">  0x08001AC4:  </span>68C3         LDR        R3, [R0, #12]
+<span id="A08001ac6">  0x08001AC6:  </span>069B         LSLS       R3, R3, #26
+<span id="A08001ac8">  0x08001AC8:  </span>D406         BMI        .L2                      ; 0x08001AD8
+<span id="A08001aca">  0x08001ACA:  </span>680B         LDR        R3, [R1]
+<span id="A08001acc">  0x08001ACC:  </span>1A9B         SUBS       R3, R3, R2
+<span id="A08001ace">  0x08001ACE:  </span>F5B3 7F7A    CMP.W      R3, #0x03E8
+<span id="A08001ad2">  0x08001AD2:  </span>D9F7         BLS        .L1                      ; 0x08001AC4
+<span id="A08001ad4">  0x08001AD4:  </span>2003         MOVS       R0, #3
+<span id="A08001ad6">  0x08001AD6:  </span>4770         BX         LR
 <br/>.L2:
-<span id="A080009d2">  0x080009D2:  </span>2000         MOVS       R0, #0
-<span id="A080009d4">  0x080009D4:  </span>4770         BX         LR
-</pre>
-<h2 id="ABSOLUTE LISTING_Section .text.main from charger_lto.o, size=304, align=2">Section .text.main from charger_lto.o, size=304, align=2</h2>
-<pre>
-<br/><span id="	#">main:</span>
-<span id="A080009d6">  0x080009D6:  </span>F64E 5014    MOVW       R0, #0xED14
-<span id="A080009da">  0x080009DA:  </span>F3BF 8F5F    DMB        SY
-<span id="A080009de">  0x080009DE:  </span>F2CE 0000    MOVT       R0, #0xE000
-<span id="A080009e2">  0x080009E2:  </span>6901         LDR        R1, [R0, #16]
-<span id="A080009e4">  0x080009E4:  </span>F421 3180    BIC        R1, R1, #0x010000
-<span id="A080009e8">  0x080009E8:  </span>6101         STR        R1, [R0, #16]
-<span id="A080009ea">  0x080009EA:  </span>2100         MOVS       R1, #0
-<span id="A080009ec">  0x080009EC:  </span>F8C0 1080    STR.W      R1, [R0, #128]
-<span id="A080009f0">  0x080009F0:  </span>F8C0 1084    STR.W      R1, [R0, #132]
-<span id="A080009f4">  0x080009F4:  </span>F8D0 208C    LDR.W      R2, [R0, #140]
-<span id="A080009f8">  0x080009F8:  </span>F022 0201    BIC        R2, R2, #1
-<span id="A080009fc">  0x080009FC:  </span>F8C0 208C    STR.W      R2, [R0, #140]
-<span id="A08000a00">  0x08000A00:  </span>F248 723F    MOVW       R2, #0x873F
-<span id="A08000a04">  0x08000A04:  </span>F8C0 1088    STR.W      R1, [R0, #136]
-<span id="A08000a08">  0x08000A08:  </span>F2C1 0204    MOVT       R2, #0x1004
-<span id="A08000a0c">  0x08000A0C:  </span>F8C0 208C    STR.W      R2, [R0, #140]
-<span id="A08000a10">  0x08000A10:  </span>2205         MOVS       R2, #5
-<span id="A08000a12">  0x08000A12:  </span>F8C0 2080    STR.W      R2, [R0, #128]
-<span id="A08000a16">  0x08000A16:  </span>6902         LDR        R2, [R0, #16]
-<span id="A08000a18">  0x08000A18:  </span>F442 3280    ORR        R2, R2, #0x010000
-<span id="A08000a1c">  0x08000A1C:  </span>6102         STR        R2, [R0, #16]
-<span id="A08000a1e">  0x08000A1E:  </span>F3BF 8F4F    DSB        SY
-<span id="A08000a22">  0x08000A22:  </span>F3BF 8F6F    ISB        SY
-<span id="A08000a26">  0x08000A26:  </span>6802         LDR        R2, [R0]
-<span id="A08000a28">  0x08000A28:  </span>0392         LSLS       R2, R2, #14
-<span id="A08000a2a">  0x08000A2A:  </span>D411         BMI        .L1                      ; 0x08000A50
-<span id="A08000a2c">  0x08000A2C:  </span>F3BF 8F4F    DSB        SY
-<span id="A08000a30">  0x08000A30:  </span>F3BF 8F6F    ISB        SY
-<span id="A08000a34">  0x08000A34:  </span>F8C0 123C    STR.W      R1, [R0, #0x023C]
-<span id="A08000a38">  0x08000A38:  </span>F3BF 8F4F    DSB        SY
-<span id="A08000a3c">  0x08000A3C:  </span>F3BF 8F6F    ISB        SY
-<span id="A08000a40">  0x08000A40:  </span>6801         LDR        R1, [R0]
-<span id="A08000a42">  0x08000A42:  </span>F441 3100    ORR        R1, R1, #0x020000
-<span id="A08000a46">  0x08000A46:  </span>6001         STR        R1, [R0]
-<span id="A08000a48">  0x08000A48:  </span>F3BF 8F4F    DSB        SY
-<span id="A08000a4c">  0x08000A4C:  </span>F3BF 8F6F    ISB        SY
-<br/>.L1:
-<span id="A08000a50">  0x08000A50:  </span>B082         SUB        SP, SP, #8
-<span id="A08000a52">  0x08000A52:  </span>6801         LDR        R1, [R0]
-<span id="A08000a54">  0x08000A54:  </span>03C9         LSLS       R1, R1, #15
-<span id="A08000a56">  0x08000A56:  </span>D426         BMI        .L4                      ; 0x08000AA6
-<span id="A08000a58">  0x08000A58:  </span>2100         MOVS       R1, #0
-<span id="A08000a5a">  0x08000A5A:  </span>6701         STR        R1, [R0, #112]
-<span id="A08000a5c">  0x08000A5C:  </span>F3BF 8F4F    DSB        SY
-<span id="A08000a60">  0x08000A60:  </span>F643 7EE0    MOVW       LR, #0x3FE0
-<span id="A08000a64">  0x08000A64:  </span>6EC2         LDR        R2, [R0, #108]
-<span id="A08000a66">  0x08000A66:  </span>EA4F 0CD2    LSR.W      R12, R2, #3
-<span id="A08000a6a">  0x08000A6A:  </span>F3C2 314E    UBFX       R1, R2, #13, #15
-<span id="A08000a6e">  0x08000A6E:  </span>F3C2 03C9    UBFX       R3, R2, #3, #10
-<span id="A08000a72">  0x08000A72:  </span>3301         ADDS       R3, #1
-<span id="A08000a74">  0x08000A74:  </span>014A         LSLS       R2, R1, #5
-<br/>.L2:
-<span id="A08000a76">  0x08000A76:  </span>EA02 040E    AND.W      R4, R2, LR
-<span id="A08000a7a">  0x08000A7A:  </span>461D         MOV        R5, R3
-<span id="A08000a7c">  0x08000A7C:  </span>EB04 748C    ADD.W      R4, R4, R12, LSL #30
-<br/>.L3:
-<span id="A08000a80">  0x08000A80:  </span>3D01         SUBS       R5, #1
-<span id="A08000a82">  0x08000A82:  </span>F8C0 424C    STR.W      R4, [R0, #0x024C]
-<span id="A08000a86">  0x08000A86:  </span>F104 4440    ADD.W      R4, R4, #0xC0000000
-<span id="A08000a8a">  0x08000A8A:  </span>D1F9         BNE        .L3                      ; 0x08000A80
-<span id="A08000a8c">  0x08000A8C:  </span>3A20         SUBS       R2, #32
-<span id="A08000a8e">  0x08000A8E:  </span>3901         SUBS       R1, #1
-<span id="A08000a90">  0x08000A90:  </span>D2F1         BCS        .L2                      ; 0x08000A76
-<span id="A08000a92">  0x08000A92:  </span>F3BF 8F4F    DSB        SY
-<span id="A08000a96">  0x08000A96:  </span>6801         LDR        R1, [R0]
-<span id="A08000a98">  0x08000A98:  </span>F441 3180    ORR        R1, R1, #0x010000
-<span id="A08000a9c">  0x08000A9C:  </span>6001         STR        R1, [R0]
-<span id="A08000a9e">  0x08000A9E:  </span>F3BF 8F4F    DSB        SY
-<span id="A08000aa2">  0x08000AA2:  </span>F3BF 8F6F    ISB        SY
-<br/>.L4:
-<span id="A08000aa6">  0x08000AA6:  </span>F7FF FE83    BL         <a href="#`íu²i">HAL_Init</a>                 ; 0x080007B0
-<span id="A08000aaa">  0x08000AAA:  </span>F7FF FC9F    BL         SystemClock_Config()     ; 0x080003EC
-<span id="A08000aae">  0x08000AAE:  </span>F244 40E0    MOVW       R0, #0x44E0
-<span id="A08000ab2">  0x08000AB2:  </span>F6C5 0002    MOVT       R0, #0x5802
-<span id="A08000ab6">  0x08000AB6:  </span>6801         LDR        R1, [R0]
-<span id="A08000ab8">  0x08000AB8:  </span>F041 0104    ORR        R1, R1, #4
-<span id="A08000abc">  0x08000ABC:  </span>6001         STR        R1, [R0]
-<span id="A08000abe">  0x08000ABE:  </span>6801         LDR        R1, [R0]
-<span id="A08000ac0">  0x08000AC0:  </span>F001 0104    AND        R1, R1, #4
-<span id="A08000ac4">  0x08000AC4:  </span>9101         STR        R1, [SP, #4]
-<span id="A08000ac6">  0x08000AC6:  </span>9901         LDR        R1, [SP, #4]
-<span id="A08000ac8">  0x08000AC8:  </span>6801         LDR        R1, [R0]
-<span id="A08000aca">  0x08000ACA:  </span>F041 0180    ORR        R1, R1, #128
-<span id="A08000ace">  0x08000ACE:  </span>6001         STR        R1, [R0]
-<span id="A08000ad0">  0x08000AD0:  </span>6800         LDR        R0, [R0]
-<span id="A08000ad2">  0x08000AD2:  </span>F244 0100    MOVW       R1, #0x4000
-<span id="A08000ad6">  0x08000AD6:  </span>F000 0080    AND        R0, R0, #128
-<span id="A08000ada">  0x08000ADA:  </span>9000         STR        R0, [SP, #0]
-<span id="A08000adc">  0x08000ADC:  </span>F240 0000    MOVW       R0, #0                   ; 0x30000000 = hrtc
-<span id="A08000ae0">  0x08000AE0:  </span>9A00         LDR        R2, [SP, #0]
-<span id="A08000ae2">  0x08000AE2:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000000 = hrtc
-<span id="A08000ae6">  0x08000AE6:  </span>F6C5 0100    MOVT       R1, #0x5800
-<span id="A08000aea">  0x08000AEA:  </span>227F         MOVS       R2, #127
-<span id="A08000aec">  0x08000AEC:  </span>6001         STR        R1, [R0]
-<span id="A08000aee">  0x08000AEE:  </span>2100         MOVS       R1, #0
-<span id="A08000af0">  0x08000AF0:  </span>E9C0 1201    STRD       R1, R2, [R0, #4]
-<span id="A08000af4">  0x08000AF4:  </span>22FF         MOVS       R2, #255
-<span id="A08000af6">  0x08000AF6:  </span>61C1         STR        R1, [R0, #28]
-<span id="A08000af8">  0x08000AF8:  </span>E9C0 2103    STRD       R2, R1, [R0, #12]
-<span id="A08000afc">  0x08000AFC:  </span>E9C0 1105    STRD       R1, R1, [R0, #20]
-<span id="A08000b00">  0x08000B00:  </span>F7FF FE8F    BL         <a href="#`íu²i">HAL_RTC_Init</a>             ; 0x08000822
-<span id="A08000b04">  0x08000B04:  </span>B672         CPSID      i
+<span id="A08001ad8">  0x08001AD8:  </span>2000         MOVS       R0, #0
+<span id="A08001ada">  0x08001ADA:  </span>4770         BX         LR
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .text.SysTick_Handler from charger_lto.o, size=16, align=2">Section .text.SysTick_Handler from charger_lto.o, size=16, align=2</h2>
 <pre>
-<br/><span id="È	#">SysTick_Handler:</span>
-<span id="A08000b06">  0x08000B06:  </span>F240 0024    MOVW       R0, #36                  ; 0x30000024 = uwTick
-<span id="A08000b0a">  0x08000B0A:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000024 = uwTick
-<span id="A08000b0e">  0x08000B0E:  </span>6801         LDR        R1, [R0]
-<span id="A08000b10">  0x08000B10:  </span>3101         ADDS       R1, #1
-<span id="A08000b12">  0x08000B12:  </span>6001         STR        R1, [R0]
-<span id="A08000b14">  0x08000B14:  </span>4770         BX         LR
+<br/><span id="xÑ
+D">SysTick_Handler:</span>
+<span id="A08001adc">  0x08001ADC:  </span>F240 1024    MOVW       R0, #0x0124              ; 0x30000124 = uwTick
+<span id="A08001ae0">  0x08001AE0:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000124 = uwTick
+<span id="A08001ae4">  0x08001AE4:  </span>6801         LDR        R1, [R0]
+<span id="A08001ae6">  0x08001AE6:  </span>3101         ADDS       R1, #1
+<span id="A08001ae8">  0x08001AE8:  </span>6001         STR        R1, [R0]
+<span id="A08001aea">  0x08001AEA:  </span>4770         BX         LR
 </pre>
-<h2 id="ABSOLUTE LISTING_Section .text.HAL_InitTick from charger_lto.o, size=128, align=2">Section .text.HAL_InitTick from charger_lto.o, size=128, align=2</h2>
+<h2 id="ABSOLUTE LISTING_Section .text.DMA1_Stream0_IRQHandler from charger_lto.o, size=1012, align=2">Section .text.DMA1_Stream0_IRQHandler from charger_lto.o, size=1012, align=2</h2>
 <pre>
-<br/><span id="Ã	#">HAL_InitTick:</span>
-<span id="A08000b16">  0x08000B16:  </span>F240 012C    MOVW       R1, #44                  ; 0x3000002C = SystemCoreClock
-<span id="A08000b1a">  0x08000B1A:  </span>F644 52D3    MOVW       R2, #0x4DD3
-<span id="A08000b1e">  0x08000B1E:  </span>F2C3 0100    MOVT       R1, #0x3000              ; 0x3000002C = SystemCoreClock
-<span id="A08000b22">  0x08000B22:  </span>F2C1 0262    MOVT       R2, #0x1062
-<span id="A08000b26">  0x08000B26:  </span>6809         LDR        R1, [R1]
-<span id="A08000b28">  0x08000B28:  </span>FBA1 1202    UMULL      R1, R2, R1, R2
-<span id="A08000b2c">  0x08000B2C:  </span>F04F 31FF    MOV.W      R1, #0xFFFFFFFF
-<span id="A08000b30">  0x08000B30:  </span>EB01 1292    ADD.W      R2, R1, R2, LSR #6
-<span id="A08000b34">  0x08000B34:  </span>0E11         LSRS       R1, R2, #24
-<span id="A08000b36">  0x08000B36:  </span>D001         BEQ        .L1                      ; 0x08000B3C
-<span id="A08000b38">  0x08000B38:  </span>2001         MOVS       R0, #1
-<span id="A08000b3a">  0x08000B3A:  </span>4770         BX         LR
+<br/><span id="yÑ
+D">DMA1_Stream0_IRQHandler:</span>
+<span id="A08001aec">  0x08001AEC:  </span>E92D 47F0    PUSH.W     {R4-R10, LR}
+<span id="A08001af0">  0x08001AF0:  </span>B082         SUB        SP, SP, #8
+<span id="A08001af2">  0x08001AF2:  </span>2000         MOVS       R0, #0
+<span id="A08001af4">  0x08001AF4:  </span>9001         STR        R0, [SP, #4]
+<span id="A08001af6">  0x08001AF6:  </span>F240 102C    MOVW       R0, #0x012C              ; 0x3000012C = SystemCoreClock
+<span id="A08001afa">  0x08001AFA:  </span>F240 0488    MOVW       R4, #136                 ; 0x30000088 = hdma_spi4_tx
+<span id="A08001afe">  0x08001AFE:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x3000012C = SystemCoreClock
+<span id="A08001b02">  0x08001B02:  </span>F2C3 0400    MOVT       R4, #0x3000              ; 0x30000088 = hdma_spi4_tx
+<span id="A08001b06">  0x08001B06:  </span>F248 12B5    MOVW       R2, #0x81B5
+<span id="A08001b0a">  0x08001B0A:  </span>F240 486F    MOVW       R8, #0x046F
+<span id="A08001b0e">  0x08001B0E:  </span>6801         LDR        R1, [R0]
+<span id="A08001b10">  0x08001B10:  </span>F6C1 324E    MOVT       R2, #0x1B4E
+<span id="A08001b14">  0x08001B14:  </span>6DA5         LDR        R5, [R4, #88]
+<span id="A08001b16">  0x08001B16:  </span>F2C4 0802    MOVT       R8, #0x4002
+<span id="A08001b1a">  0x08001B1A:  </span>6820         LDR        R0, [R4]
+<span id="A08001b1c">  0x08001B1C:  </span>FBA1 1A02    UMULL      R1, R10, R1, R2
+<span id="A08001b20">  0x08001B20:  </span>4540         CMP        R0, R8
+<span id="A08001b22">  0x08001B22:  </span>682F         LDR        R7, [R5]
+<span id="A08001b24">  0x08001B24:  </span>6829         LDR        R1, [R5]
+<span id="A08001b26">  0x08001B26:  </span>DC08         BGT        .L1                      ; 0x08001B3A
+<span id="A08001b28">  0x08001B28:  </span>F5A8 7174    SUB.W      R1, R8, #0x03D0
+<span id="A08001b2c">  0x08001B2C:  </span>4288         CMP        R0, R1
+<span id="A08001b2e">  0x08001B2E:  </span>DC11         BGT        .L2                      ; 0x08001B54
+<span id="A08001b30">  0x08001B30:  </span>3948         SUBS       R1, #72
+<span id="A08001b32">  0x08001B32:  </span>4288         CMP        R0, R1
+<span id="A08001b34">  0x08001B34:  </span>DC25         BGT        .L4                      ; 0x08001B82
+<span id="A08001b36">  0x08001B36:  </span>3947         SUBS       R1, #71
+<span id="A08001b38">  0x08001B38:  </span>E024         B          .L5                      ; 0x08001B84
 <br/>.L1:
-<span id="A08000b3c">  0x08000B3C:  </span>F24E 0310    MOVW       R3, #0xE010
-<span id="A08000b40">  0x08000B40:  </span>280F         CMP        R0, #15
-<span id="A08000b42">  0x08000B42:  </span>F2CE 0300    MOVT       R3, #0xE000
-<span id="A08000b46">  0x08000B46:  </span>F04F 0001    MOV.W      R0, #1
-<span id="A08000b4a">  0x08000B4A:  </span>F603 4CFC    ADDW       R12, R3, #0x0CFC
-<span id="A08000b4e">  0x08000B4E:  </span>605A         STR        R2, [R3, #4]
-<span id="A08000b50">  0x08000B50:  </span>F04F 02F0    MOV.W      R2, #240
-<span id="A08000b54">  0x08000B54:  </span>F88C 2017    STRB.W     R2, [R12, #23]
-<span id="A08000b58">  0x08000B58:  </span>F04F 0207    MOV.W      R2, #7
-<span id="A08000b5c">  0x08000B5C:  </span>6099         STR        R1, [R3, #8]
-<span id="A08000b5e">  0x08000B5E:  </span>601A         STR        R2, [R3]
-<span id="A08000b60">  0x08000B60:  </span>BF88         IT         HI
-<span id="A08000b62">  0x08000B62:  </span>4770         BXHI       LR
-<span id="A08000b64">  0x08000B64:  </span>F8DC 2000    LDR.W      R2, [R12]
-<span id="A08000b68">  0x08000B68:  </span>43C9         MVNS       R1, R1
-<span id="A08000b6a">  0x08000B6A:  </span>F3C2 2202    UBFX       R2, R2, #8, #3
-<span id="A08000b6e">  0x08000B6E:  </span>F082 0307    EOR        R3, R2, #7
-<span id="A08000b72">  0x08000B72:  </span>2B04         CMP        R3, #4
-<span id="A08000b74">  0x08000B74:  </span>BF28         IT         CS
-<span id="A08000b76">  0x08000B76:  </span>2304         MOVCS      R3, #4
-<span id="A08000b78">  0x08000B78:  </span>4099         LSLS       R1, R3
-<span id="A08000b7a">  0x08000B7A:  </span>43C9         MVNS       R1, R1
-<span id="A08000b7c">  0x08000B7C:  </span>3A03         SUBS       R2, #3
-<span id="A08000b7e">  0x08000B7E:  </span>BF28         IT         CS
-<span id="A08000b80">  0x08000B80:  </span>4091         LSLCS      R1, R2
-<span id="A08000b82">  0x08000B82:  </span>0109         LSLS       R1, R1, #4
-<span id="A08000b84">  0x08000B84:  </span>F88C 1017    STRB.W     R1, [R12, #23]
-<span id="A08000b88">  0x08000B88:  </span>F240 0128    MOVW       R1, #40                  ; 0x30000028 = uwTickPrio
-<span id="A08000b8c">  0x08000B8C:  </span>F2C3 0100    MOVT       R1, #0x3000              ; 0x30000028 = uwTickPrio
-<span id="A08000b90">  0x08000B90:  </span>7008         STRB       R0, [R1]
-<span id="A08000b92">  0x08000B92:  </span>2000         MOVS       R0, #0
-<span id="A08000b94">  0x08000B94:  </span>4770         BX         LR
+<span id="A08001b3a">  0x08001B3A:  </span>F245 422F    MOVW       R2, #0x542F
+<span id="A08001b3e">  0x08001B3E:  </span>F6C5 0202    MOVT       R2, #0x5802
+<span id="A08001b42">  0x08001B42:  </span>4290         CMP        R0, R2
+<span id="A08001b44">  0x08001B44:  </span>DC14         BGT        .L3                      ; 0x08001B70
+<span id="A08001b46">  0x08001B46:  </span>F108 0248    ADD.W      R2, R8, #72
+<span id="A08001b4a">  0x08001B4A:  </span>4290         CMP        R0, R2
+<span id="A08001b4c">  0x08001B4C:  </span>DC3B         BGT        .L9                      ; 0x08001BC6
+<span id="A08001b4e">  0x08001B4E:  </span>F1A2 0147    SUB.W      R1, R2, #71
+<span id="A08001b52">  0x08001B52:  </span>E017         B          .L5                      ; 0x08001B84
+<br/>.L2:
+<span id="A08001b54">  0x08001B54:  </span>F501 7162    ADD.W      R1, R1, #0x0388
+<span id="A08001b58">  0x08001B58:  </span>4288         CMP        R0, R1
+<span id="A08001b5a">  0x08001B5A:  </span>DC12         BGT        .L4                      ; 0x08001B82
+<span id="A08001b5c">  0x08001B5C:  </span>F2A1 3187    SUBW       R1, R1, #0x0387
+<span id="A08001b60">  0x08001B60:  </span>4288         CMP        R0, R1
+<span id="A08001b62">  0x08001B62:  </span>D018         BEQ        .L7                      ; 0x08001B96
+<span id="A08001b64">  0x08001B64:  </span>3118         ADDS       R1, #24
+<span id="A08001b66">  0x08001B66:  </span>4288         CMP        R0, R1
+<span id="A08001b68">  0x08001B68:  </span>D015         BEQ        .L7                      ; 0x08001B96
+<span id="A08001b6a">  0x08001B6A:  </span>F501 7156    ADD.W      R1, R1, #0x0358
+<span id="A08001b6e">  0x08001B6E:  </span>E00F         B          .L6                      ; 0x08001B90
+<br/>.L3:
+<span id="A08001b70">  0x08001B70:  </span>323C         ADDS       R2, #60
+<span id="A08001b72">  0x08001B72:  </span>4290         CMP        R0, R2
+<span id="A08001b74">  0x08001B74:  </span>BFD4         ITE        LE
+<span id="A08001b76">  0x08001B76:  </span>3A3B         SUBLE      R2, #59
+<span id="A08001b78">  0x08001B78:  </span>3201         ADDGT      R2, #1
+<span id="A08001b7a">  0x08001B7A:  </span>4290         CMP        R0, R2
+<span id="A08001b7c">  0x08001B7C:  </span>D030         BEQ        .L11                     ; 0x08001BE0
+<span id="A08001b7e">  0x08001B7E:  </span>3214         ADDS       R2, #20
+<span id="A08001b80">  0x08001B80:  </span>E028         B          .L10                     ; 0x08001BD4
+<br/>.L4:
+<span id="A08001b82">  0x08001B82:  </span>3101         ADDS       R1, #1
+<br/>.L5:
+<span id="A08001b84">  0x08001B84:  </span>4288         CMP        R0, R1
+<span id="A08001b86">  0x08001B86:  </span>D006         BEQ        .L7                      ; 0x08001B96
+<span id="A08001b88">  0x08001B88:  </span>3118         ADDS       R1, #24
+<span id="A08001b8a">  0x08001B8A:  </span>4288         CMP        R0, R1
+<span id="A08001b8c">  0x08001B8C:  </span>D003         BEQ        .L7                      ; 0x08001B96
+<span id="A08001b8e">  0x08001B8E:  </span>3118         ADDS       R1, #24
+<br/>.L6:
+<span id="A08001b90">  0x08001B90:  </span>4288         CMP        R0, R1
+<span id="A08001b92">  0x08001B92:  </span>F040 8198    BNE.W      .L55                     ; 0x08001EC6
+<br/>.L7:
+<span id="A08001b96">  0x08001B96:  </span>6DE1         LDR        R1, [R4, #92]
+<span id="A08001b98">  0x08001B98:  </span>2208         MOVS       R2, #8
+<span id="A08001b9a">  0x08001B9A:  </span>F001 011F    AND        R1, R1, #31
+<span id="A08001b9e">  0x08001B9E:  </span>F1A8 0960    SUB.W      R9, R8, #96
+<span id="A08001ba2">  0x08001BA2:  </span>408A         LSLS       R2, R1
+<span id="A08001ba4">  0x08001BA4:  </span>423A         TST        R2, R7
+<span id="A08001ba6">  0x08001BA6:  </span>D067         BEQ        .L16                     ; 0x08001C78
+<span id="A08001ba8">  0x08001BA8:  </span>2304         MOVS       R3, #4
+<span id="A08001baa">  0x08001BAA:  </span>4548         CMP        R0, R9
+<span id="A08001bac">  0x08001BAC:  </span>DC06         BGT        .L8                      ; 0x08001BBC
+<span id="A08001bae">  0x08001BAE:  </span>F5A8 6680    SUB.W      R6, R8, #0x0400
+<span id="A08001bb2">  0x08001BB2:  </span>42B0         CMP        R0, R6
+<span id="A08001bb4">  0x08001BB4:  </span>BFD4         ITE        LE
+<span id="A08001bb6">  0x08001BB6:  </span>3E30         SUBLE      R6, #48
+<span id="A08001bb8">  0x08001BB8:  </span>3630         ADDGT      R6, #48
+<span id="A08001bba">  0x08001BBA:  </span>E047         B          .L14                     ; 0x08001C4C
+<br/>.L8:
+<span id="A08001bbc">  0x08001BBC:  </span>4540         CMP        R0, R8
+<span id="A08001bbe">  0x08001BBE:  </span>DC43         BGT        .L13                     ; 0x08001C48
+<span id="A08001bc0">  0x08001BC0:  </span>F1A8 0630    SUB.W      R6, R8, #48
+<span id="A08001bc4">  0x08001BC4:  </span>E042         B          .L14                     ; 0x08001C4C
+<br/>.L9:
+<span id="A08001bc6">  0x08001BC6:  </span>3201         ADDS       R2, #1
+<span id="A08001bc8">  0x08001BC8:  </span>4290         CMP        R0, R2
+<span id="A08001bca">  0x08001BCA:  </span>D0E4         BEQ        .L7                      ; 0x08001B96
+<span id="A08001bcc">  0x08001BCC:  </span>F245 4208    MOVW       R2, #0x5408
+<span id="A08001bd0">  0x08001BD0:  </span>F6C5 0202    MOVT       R2, #0x5802
+<br/>.L10:
+<span id="A08001bd4">  0x08001BD4:  </span>4290         CMP        R0, R2
+<span id="A08001bd6">  0x08001BD6:  </span>D003         BEQ        .L11                     ; 0x08001BE0
+<span id="A08001bd8">  0x08001BD8:  </span>3214         ADDS       R2, #20
+<span id="A08001bda">  0x08001BDA:  </span>4290         CMP        R0, R2
+<span id="A08001bdc">  0x08001BDC:  </span>F040 8173    BNE.W      .L55                     ; 0x08001EC6
+<br/>.L11:
+<span id="A08001be0">  0x08001BE0:  </span>6802         LDR        R2, [R0]
+<span id="A08001be2">  0x08001BE2:  </span>6DE3         LDR        R3, [R4, #92]
+<span id="A08001be4">  0x08001BE4:  </span>F003 031F    AND        R3, R3, #31
+<span id="A08001be8">  0x08001BE8:  </span>2704         MOVS       R7, #4
+<span id="A08001bea">  0x08001BEA:  </span>409F         LSLS       R7, R3
+<span id="A08001bec">  0x08001BEC:  </span>420F         TST        R7, R1
+<span id="A08001bee">  0x08001BEE:  </span>BF18         IT         NE
+<span id="A08001bf0">  0x08001BF0:  </span>F012 0604    ANDSNE     R6, R2, #4
+<span id="A08001bf4">  0x08001BF4:  </span>D11C         BNE        .L12                     ; 0x08001C30
+<span id="A08001bf6">  0x08001BF6:  </span>2702         MOVS       R7, #2
+<span id="A08001bf8">  0x08001BF8:  </span>409F         LSLS       R7, R3
+<span id="A08001bfa">  0x08001BFA:  </span>420F         TST        R7, R1
+<span id="A08001bfc">  0x08001BFC:  </span>BF18         IT         NE
+<span id="A08001bfe">  0x08001BFE:  </span>F012 0602    ANDSNE     R6, R2, #2
+<span id="A08001c02">  0x08001C02:  </span>F040 80B7    BNE.W      .L33                     ; 0x08001D74
+<span id="A08001c06">  0x08001C06:  </span>40D9         LSRS       R1, R3
+<span id="A08001c08">  0x08001C08:  </span>0709         LSLS       R1, R1, #28
+<span id="A08001c0a">  0x08001C0A:  </span>F140 815C    BPL.W      .L55                     ; 0x08001EC6
+<span id="A08001c0e">  0x08001C0E:  </span>F012 0108    ANDS       R1, R2, #8
+<span id="A08001c12">  0x08001C12:  </span>F000 8158    BEQ.W      .L55                     ; 0x08001EC6
+<span id="A08001c16">  0x08001C16:  </span>6801         LDR        R1, [R0]
+<span id="A08001c18">  0x08001C18:  </span>F021 010E    BIC        R1, R1, #14
+<span id="A08001c1c">  0x08001C1C:  </span>6001         STR        R1, [R0]
+<span id="A08001c1e">  0x08001C1E:  </span>2001         MOVS       R0, #1
+<span id="A08001c20">  0x08001C20:  </span>FA00 F103    LSL.W      R1, R0, R3
+<span id="A08001c24">  0x08001C24:  </span>6069         STR        R1, [R5, #4]
+<span id="A08001c26">  0x08001C26:  </span>6560         STR        R0, [R4, #84]
+<span id="A08001c28">  0x08001C28:  </span>F884 0035    STRB.W     R0, [R4, #53]
+<span id="A08001c2c">  0x08001C2C:  </span>6CE1         LDR        R1, [R4, #76]
+<span id="A08001c2e">  0x08001C2E:  </span>E100         B          .L44                     ; 0x08001E32
+<br/>.L12:
+<span id="A08001c30">  0x08001C30:  </span>0411         LSLS       R1, R2, #16
+<span id="A08001c32">  0x08001C32:  </span>606F         STR        R7, [R5, #4]
+<span id="A08001c34">  0x08001C34:  </span>F100 80B0    BMI.W      .L34                     ; 0x08001D98
+<span id="A08001c38">  0x08001C38:  </span>0691         LSLS       R1, R2, #26
+<span id="A08001c3a">  0x08001C3A:  </span>F100 80B1    BMI.W      .L35                     ; 0x08001DA0
+<span id="A08001c3e">  0x08001C3E:  </span>6801         LDR        R1, [R0]
+<span id="A08001c40">  0x08001C40:  </span>F021 0104    BIC        R1, R1, #4
+<span id="A08001c44">  0x08001C44:  </span>6001         STR        R1, [R0]
+<span id="A08001c46">  0x08001C46:  </span>E0AB         B          .L35                     ; 0x08001DA0
+<br/>.L13:
+<span id="A08001c48">  0x08001C48:  </span>F108 0630    ADD.W      R6, R8, #48
+<br/>.L14:
+<span id="A08001c4c">  0x08001C4C:  </span>42B0         CMP        R0, R6
+<span id="A08001c4e">  0x08001C4E:  </span>BFCC         ITE        GT
+<span id="A08001c50">  0x08001C50:  </span>3601         ADDGT      R6, #1
+<span id="A08001c52">  0x08001C52:  </span>3E2F         SUBLE      R6, #47
+<span id="A08001c54">  0x08001C54:  </span>42B0         CMP        R0, R6
+<span id="A08001c56">  0x08001C56:  </span>D003         BEQ        .L15                     ; 0x08001C60
+<span id="A08001c58">  0x08001C58:  </span>3618         ADDS       R6, #24
+<span id="A08001c5a">  0x08001C5A:  </span>42B0         CMP        R0, R6
+<span id="A08001c5c">  0x08001C5C:  </span>BF18         IT         NE
+<span id="A08001c5e">  0x08001C5E:  </span>2308         MOVNE      R3, #8
+<br/>.L15:
+<span id="A08001c60">  0x08001C60:  </span>6806         LDR        R6, [R0]
+<span id="A08001c62">  0x08001C62:  </span>421E         TST        R6, R3
+<span id="A08001c64">  0x08001C64:  </span>D008         BEQ        .L16                     ; 0x08001C78
+<span id="A08001c66">  0x08001C66:  </span>6803         LDR        R3, [R0]
+<span id="A08001c68">  0x08001C68:  </span>F023 0304    BIC        R3, R3, #4
+<span id="A08001c6c">  0x08001C6C:  </span>6003         STR        R3, [R0]
+<span id="A08001c6e">  0x08001C6E:  </span>60AA         STR        R2, [R5, #8]
+<span id="A08001c70">  0x08001C70:  </span>6D62         LDR        R2, [R4, #84]
+<span id="A08001c72">  0x08001C72:  </span>F042 0201    ORR        R2, R2, #1
+<span id="A08001c76">  0x08001C76:  </span>6562         STR        R2, [R4, #84]
+<br/>.L16:
+<span id="A08001c78">  0x08001C78:  </span>2201         MOVS       R2, #1
+<span id="A08001c7a">  0x08001C7A:  </span>408A         LSLS       R2, R1
+<span id="A08001c7c">  0x08001C7C:  </span>423A         TST        R2, R7
+<span id="A08001c7e">  0x08001C7E:  </span>D021         BEQ        .L21                     ; 0x08001CC4
+<span id="A08001c80">  0x08001C80:  </span>4548         CMP        R0, R9
+<span id="A08001c82">  0x08001C82:  </span>DC06         BGT        .L17                     ; 0x08001C92
+<span id="A08001c84">  0x08001C84:  </span>F5A8 6380    SUB.W      R3, R8, #0x0400
+<span id="A08001c88">  0x08001C88:  </span>4298         CMP        R0, R3
+<span id="A08001c8a">  0x08001C8A:  </span>BFD4         ITE        LE
+<span id="A08001c8c">  0x08001C8C:  </span>3B30         SUBLE      R3, #48
+<span id="A08001c8e">  0x08001C8E:  </span>3330         ADDGT      R3, #48
+<span id="A08001c90">  0x08001C90:  </span>E006         B          .L19                     ; 0x08001CA0
+<br/>.L17:
+<span id="A08001c92">  0x08001C92:  </span>4540         CMP        R0, R8
+<span id="A08001c94">  0x08001C94:  </span>DC02         BGT        .L18                     ; 0x08001C9C
+<span id="A08001c96">  0x08001C96:  </span>F1A8 0330    SUB.W      R3, R8, #48
+<span id="A08001c9a">  0x08001C9A:  </span>E001         B          .L19                     ; 0x08001CA0
+<br/>.L18:
+<span id="A08001c9c">  0x08001C9C:  </span>F108 0330    ADD.W      R3, R8, #48
+<br/>.L19:
+<span id="A08001ca0">  0x08001CA0:  </span>4298         CMP        R0, R3
+<span id="A08001ca2">  0x08001CA2:  </span>BFD4         ITE        LE
+<span id="A08001ca4">  0x08001CA4:  </span>3B2F         SUBLE      R3, #47
+<span id="A08001ca6">  0x08001CA6:  </span>3301         ADDGT      R3, #1
+<span id="A08001ca8">  0x08001CA8:  </span>4298         CMP        R0, R3
+<span id="A08001caa">  0x08001CAA:  </span>D003         BEQ        .L20                     ; 0x08001CB4
+<span id="A08001cac">  0x08001CAC:  </span>3318         ADDS       R3, #24
+<span id="A08001cae">  0x08001CAE:  </span>4298         CMP        R0, R3
+<span id="A08001cb0">  0x08001CB0:  </span>F040 8112    BNE.W      .L58                     ; 0x08001ED8
+<br/>.L20:
+<span id="A08001cb4">  0x08001CB4:  </span>6943         LDR        R3, [R0, #20]
+<span id="A08001cb6">  0x08001CB6:  </span>061B         LSLS       R3, R3, #24
+<span id="A08001cb8">  0x08001CB8:  </span>D504         BPL        .L21                     ; 0x08001CC4
+<span id="A08001cba">  0x08001CBA:  </span>60AA         STR        R2, [R5, #8]
+<span id="A08001cbc">  0x08001CBC:  </span>6D62         LDR        R2, [R4, #84]
+<span id="A08001cbe">  0x08001CBE:  </span>F042 0202    ORR        R2, R2, #2
+<span id="A08001cc2">  0x08001CC2:  </span>6562         STR        R2, [R4, #84]
+<br/>.L21:
+<span id="A08001cc4">  0x08001CC4:  </span>2204         MOVS       R2, #4
+<span id="A08001cc6">  0x08001CC6:  </span>408A         LSLS       R2, R1
+<span id="A08001cc8">  0x08001CC8:  </span>423A         TST        R2, R7
+<span id="A08001cca">  0x08001CCA:  </span>D021         BEQ        .L26                     ; 0x08001D10
+<span id="A08001ccc">  0x08001CCC:  </span>4548         CMP        R0, R9
+<span id="A08001cce">  0x08001CCE:  </span>DC06         BGT        .L22                     ; 0x08001CDE
+<span id="A08001cd0">  0x08001CD0:  </span>F5A8 6380    SUB.W      R3, R8, #0x0400
+<span id="A08001cd4">  0x08001CD4:  </span>4298         CMP        R0, R3
+<span id="A08001cd6">  0x08001CD6:  </span>BFD4         ITE        LE
+<span id="A08001cd8">  0x08001CD8:  </span>3B30         SUBLE      R3, #48
+<span id="A08001cda">  0x08001CDA:  </span>3330         ADDGT      R3, #48
+<span id="A08001cdc">  0x08001CDC:  </span>E006         B          .L24                     ; 0x08001CEC
+<br/>.L22:
+<span id="A08001cde">  0x08001CDE:  </span>4540         CMP        R0, R8
+<span id="A08001ce0">  0x08001CE0:  </span>DC02         BGT        .L23                     ; 0x08001CE8
+<span id="A08001ce2">  0x08001CE2:  </span>F1A8 0330    SUB.W      R3, R8, #48
+<span id="A08001ce6">  0x08001CE6:  </span>E001         B          .L24                     ; 0x08001CEC
+<br/>.L23:
+<span id="A08001ce8">  0x08001CE8:  </span>F108 0330    ADD.W      R3, R8, #48
+<br/>.L24:
+<span id="A08001cec">  0x08001CEC:  </span>4298         CMP        R0, R3
+<span id="A08001cee">  0x08001CEE:  </span>BFD4         ITE        LE
+<span id="A08001cf0">  0x08001CF0:  </span>3B2F         SUBLE      R3, #47
+<span id="A08001cf2">  0x08001CF2:  </span>3301         ADDGT      R3, #1
+<span id="A08001cf4">  0x08001CF4:  </span>4298         CMP        R0, R3
+<span id="A08001cf6">  0x08001CF6:  </span>D003         BEQ        .L25                     ; 0x08001D00
+<span id="A08001cf8">  0x08001CF8:  </span>3318         ADDS       R3, #24
+<span id="A08001cfa">  0x08001CFA:  </span>4298         CMP        R0, R3
+<span id="A08001cfc">  0x08001CFC:  </span>F040 80EE    BNE.W      .L59                     ; 0x08001EDC
+<br/>.L25:
+<span id="A08001d00">  0x08001D00:  </span>6803         LDR        R3, [R0]
+<span id="A08001d02">  0x08001D02:  </span>079B         LSLS       R3, R3, #30
+<span id="A08001d04">  0x08001D04:  </span>D504         BPL        .L26                     ; 0x08001D10
+<span id="A08001d06">  0x08001D06:  </span>60AA         STR        R2, [R5, #8]
+<span id="A08001d08">  0x08001D08:  </span>6D62         LDR        R2, [R4, #84]
+<span id="A08001d0a">  0x08001D0A:  </span>F042 0204    ORR        R2, R2, #4
+<span id="A08001d0e">  0x08001D0E:  </span>6562         STR        R2, [R4, #84]
+<br/>.L26:
+<span id="A08001d10">  0x08001D10:  </span>2210         MOVS       R2, #16
+<span id="A08001d12">  0x08001D12:  </span>408A         LSLS       R2, R1
+<span id="A08001d14">  0x08001D14:  </span>423A         TST        R2, R7
+<span id="A08001d16">  0x08001D16:  </span>D04C         BEQ        .L38                     ; 0x08001DB2
+<span id="A08001d18">  0x08001D18:  </span>2308         MOVS       R3, #8
+<span id="A08001d1a">  0x08001D1A:  </span>4548         CMP        R0, R9
+<span id="A08001d1c">  0x08001D1C:  </span>DC06         BGT        .L27                     ; 0x08001D2C
+<span id="A08001d1e">  0x08001D1E:  </span>F5A8 6680    SUB.W      R6, R8, #0x0400
+<span id="A08001d22">  0x08001D22:  </span>42B0         CMP        R0, R6
+<span id="A08001d24">  0x08001D24:  </span>BFD4         ITE        LE
+<span id="A08001d26">  0x08001D26:  </span>3E30         SUBLE      R6, #48
+<span id="A08001d28">  0x08001D28:  </span>3630         ADDGT      R6, #48
+<span id="A08001d2a">  0x08001D2A:  </span>E006         B          .L29                     ; 0x08001D3A
+<br/>.L27:
+<span id="A08001d2c">  0x08001D2C:  </span>4540         CMP        R0, R8
+<span id="A08001d2e">  0x08001D2E:  </span>DC02         BGT        .L28                     ; 0x08001D36
+<span id="A08001d30">  0x08001D30:  </span>F1A8 0630    SUB.W      R6, R8, #48
+<span id="A08001d34">  0x08001D34:  </span>E001         B          .L29                     ; 0x08001D3A
+<br/>.L28:
+<span id="A08001d36">  0x08001D36:  </span>F108 0630    ADD.W      R6, R8, #48
+<br/>.L29:
+<span id="A08001d3a">  0x08001D3A:  </span>42B0         CMP        R0, R6
+<span id="A08001d3c">  0x08001D3C:  </span>BFCC         ITE        GT
+<span id="A08001d3e">  0x08001D3E:  </span>3601         ADDGT      R6, #1
+<span id="A08001d40">  0x08001D40:  </span>3E2F         SUBLE      R6, #47
+<span id="A08001d42">  0x08001D42:  </span>42B0         CMP        R0, R6
+<span id="A08001d44">  0x08001D44:  </span>D003         BEQ        .L30                     ; 0x08001D4E
+<span id="A08001d46">  0x08001D46:  </span>3618         ADDS       R6, #24
+<span id="A08001d48">  0x08001D48:  </span>42B0         CMP        R0, R6
+<span id="A08001d4a">  0x08001D4A:  </span>BF18         IT         NE
+<span id="A08001d4c">  0x08001D4C:  </span>2304         MOVNE      R3, #4
+<br/>.L30:
+<span id="A08001d4e">  0x08001D4E:  </span>6806         LDR        R6, [R0]
+<span id="A08001d50">  0x08001D50:  </span>421E         TST        R6, R3
+<span id="A08001d52">  0x08001D52:  </span>D02E         BEQ        .L38                     ; 0x08001DB2
+<span id="A08001d54">  0x08001D54:  </span>60AA         STR        R2, [R5, #8]
+<span id="A08001d56">  0x08001D56:  </span>6802         LDR        R2, [R0]
+<span id="A08001d58">  0x08001D58:  </span>0352         LSLS       R2, R2, #13
+<span id="A08001d5a">  0x08001D5A:  </span>6802         LDR        R2, [R0]
+<span id="A08001d5c">  0x08001D5C:  </span>D406         BMI        .L31                     ; 0x08001D6C
+<span id="A08001d5e">  0x08001D5E:  </span>05D2         LSLS       R2, R2, #23
+<span id="A08001d60">  0x08001D60:  </span>D406         BMI        .L32                     ; 0x08001D70
+<span id="A08001d62">  0x08001D62:  </span>6802         LDR        R2, [R0]
+<span id="A08001d64">  0x08001D64:  </span>F022 0208    BIC        R2, R2, #8
+<span id="A08001d68">  0x08001D68:  </span>6002         STR        R2, [R0]
+<span id="A08001d6a">  0x08001D6A:  </span>E001         B          .L32                     ; 0x08001D70
+<br/>.L31:
+<span id="A08001d6c">  0x08001D6C:  </span>0310         LSLS       R0, R2, #12
+<span id="A08001d6e">  0x08001D6E:  </span>D419         BMI        .L36                     ; 0x08001DA4
+<br/>.L32:
+<span id="A08001d70">  0x08001D70:  </span>6C22         LDR        R2, [R4, #64]
+<span id="A08001d72">  0x08001D72:  </span>E018         B          .L37                     ; 0x08001DA6
+<br/>.L33:
+<span id="A08001d74">  0x08001D74:  </span>0411         LSLS       R1, R2, #16
+<span id="A08001d76">  0x08001D76:  </span>606F         STR        R7, [R5, #4]
+<span id="A08001d78">  0x08001D78:  </span>F100 80A8    BMI.W      .L56                     ; 0x08001ECC
+<span id="A08001d7c">  0x08001D7C:  </span>0691         LSLS       R1, R2, #26
+<span id="A08001d7e">  0x08001D7E:  </span>F100 80A9    BMI.W      .L57                     ; 0x08001ED4
+<span id="A08001d82">  0x08001D82:  </span>6801         LDR        R1, [R0]
+<span id="A08001d84">  0x08001D84:  </span>F021 010A    BIC        R1, R1, #10
+<span id="A08001d88">  0x08001D88:  </span>6001         STR        R1, [R0]
+<span id="A08001d8a">  0x08001D8A:  </span>2001         MOVS       R0, #1
+<span id="A08001d8c">  0x08001D8C:  </span>F884 0035    STRB.W     R0, [R4, #53]
+<span id="A08001d90">  0x08001D90:  </span>2000         MOVS       R0, #0
+<span id="A08001d92">  0x08001D92:  </span>F884 0034    STRB.W     R0, [R4, #52]
+<span id="A08001d96">  0x08001D96:  </span>E09D         B          .L57                     ; 0x08001ED4
+<br/>.L34:
+<span id="A08001d98">  0x08001D98:  </span>03D0         LSLS       R0, R2, #15
+<span id="A08001d9a">  0x08001D9A:  </span>D401         BMI        .L35                     ; 0x08001DA0
+<span id="A08001d9c">  0x08001D9C:  </span>6CA1         LDR        R1, [R4, #72]
+<span id="A08001d9e">  0x08001D9E:  </span>E089         B          .L53                     ; 0x08001EB4
+<br/>.L35:
+<span id="A08001da0">  0x08001DA0:  </span>6C21         LDR        R1, [R4, #64]
+<span id="A08001da2">  0x08001DA2:  </span>E087         B          .L53                     ; 0x08001EB4
+<br/>.L36:
+<span id="A08001da4">  0x08001DA4:  </span>6CA2         LDR        R2, [R4, #72]
+<br/>.L37:
+<span id="A08001da6">  0x08001DA6:  </span>B122         CBZ        R2, .L38                 ; 0x08001DB2
+<span id="A08001da8">  0x08001DA8:  </span>4620         MOV        R0, R4
+<span id="A08001daa">  0x08001DAA:  </span>4790         BLX        R2
+<span id="A08001dac">  0x08001DAC:  </span>6DE0         LDR        R0, [R4, #92]
+<span id="A08001dae">  0x08001DAE:  </span>F000 011F    AND        R1, R0, #31
+<br/>.L38:
+<span id="A08001db2">  0x08001DB2:  </span>2020         MOVS       R0, #32
+<span id="A08001db4">  0x08001DB4:  </span>FA00 F201    LSL.W      R2, R0, R1
+<span id="A08001db8">  0x08001DB8:  </span>423A         TST        R2, R7
+<span id="A08001dba">  0x08001DBA:  </span>D05A         BEQ        .L49                     ; 0x08001E72
+<span id="A08001dbc">  0x08001DBC:  </span>6820         LDR        R0, [R4]
+<span id="A08001dbe">  0x08001DBE:  </span>2310         MOVS       R3, #16
+<span id="A08001dc0">  0x08001DC0:  </span>4548         CMP        R0, R9
+<span id="A08001dc2">  0x08001DC2:  </span>DC06         BGT        .L39                     ; 0x08001DD2
+<span id="A08001dc4">  0x08001DC4:  </span>F5A8 6780    SUB.W      R7, R8, #0x0400
+<span id="A08001dc8">  0x08001DC8:  </span>42B8         CMP        R0, R7
+<span id="A08001dca">  0x08001DCA:  </span>BFD4         ITE        LE
+<span id="A08001dcc">  0x08001DCC:  </span>3F30         SUBLE      R7, #48
+<span id="A08001dce">  0x08001DCE:  </span>3730         ADDGT      R7, #48
+<span id="A08001dd0">  0x08001DD0:  </span>E006         B          .L41                     ; 0x08001DE0
+<br/>.L39:
+<span id="A08001dd2">  0x08001DD2:  </span>4540         CMP        R0, R8
+<span id="A08001dd4">  0x08001DD4:  </span>DC02         BGT        .L40                     ; 0x08001DDC
+<span id="A08001dd6">  0x08001DD6:  </span>F1A8 0730    SUB.W      R7, R8, #48
+<span id="A08001dda">  0x08001DDA:  </span>E001         B          .L41                     ; 0x08001DE0
+<br/>.L40:
+<span id="A08001ddc">  0x08001DDC:  </span>F108 0730    ADD.W      R7, R8, #48
+<br/>.L41:
+<span id="A08001de0">  0x08001DE0:  </span>42B8         CMP        R0, R7
+<span id="A08001de2">  0x08001DE2:  </span>BFCC         ITE        GT
+<span id="A08001de4">  0x08001DE4:  </span>3701         ADDGT      R7, #1
+<span id="A08001de6">  0x08001DE6:  </span>3F2F         SUBLE      R7, #47
+<span id="A08001de8">  0x08001DE8:  </span>42B8         CMP        R0, R7
+<span id="A08001dea">  0x08001DEA:  </span>D003         BEQ        .L42                     ; 0x08001DF4
+<span id="A08001dec">  0x08001DEC:  </span>3718         ADDS       R7, #24
+<span id="A08001dee">  0x08001DEE:  </span>42B8         CMP        R0, R7
+<span id="A08001df0">  0x08001DF0:  </span>BF18         IT         NE
+<span id="A08001df2">  0x08001DF2:  </span>2302         MOVNE      R3, #2
+<br/>.L42:
+<span id="A08001df4">  0x08001DF4:  </span>6807         LDR        R7, [R0]
+<span id="A08001df6">  0x08001DF6:  </span>421F         TST        R7, R3
+<span id="A08001df8">  0x08001DF8:  </span>D03B         BEQ        .L49                     ; 0x08001E72
+<span id="A08001dfa">  0x08001DFA:  </span>60AA         STR        R2, [R5, #8]
+<span id="A08001dfc">  0x08001DFC:  </span>F894 2035    LDRB.W     R2, [R4, #53]
+<span id="A08001e00">  0x08001E00:  </span>2A04         CMP        R2, #4
+<span id="A08001e02">  0x08001E02:  </span>6802         LDR        R2, [R0]
+<span id="A08001e04">  0x08001E04:  </span>D11A         BNE        .L45                     ; 0x08001E3C
+<span id="A08001e06">  0x08001E06:  </span>F022 0216    BIC        R2, R2, #22
+<span id="A08001e0a">  0x08001E0A:  </span>6002         STR        R2, [R0]
+<span id="A08001e0c">  0x08001E0C:  </span>6942         LDR        R2, [R0, #20]
+<span id="A08001e0e">  0x08001E0E:  </span>F022 0280    BIC        R2, R2, #128
+<span id="A08001e12">  0x08001E12:  </span>6142         STR        R2, [R0, #20]
+<span id="A08001e14">  0x08001E14:  </span>6C22         LDR        R2, [R4, #64]
+<span id="A08001e16">  0x08001E16:  </span>6CA3         LDR        R3, [R4, #72]
+<span id="A08001e18">  0x08001E18:  </span>431A         ORRS       R2, R3
+<span id="A08001e1a">  0x08001E1A:  </span>D003         BEQ        .L43                     ; 0x08001E24
+<span id="A08001e1c">  0x08001E1C:  </span>6802         LDR        R2, [R0]
+<span id="A08001e1e">  0x08001E1E:  </span>F022 0208    BIC        R2, R2, #8
+<span id="A08001e22">  0x08001E22:  </span>6002         STR        R2, [R0]
+<br/>.L43:
+<span id="A08001e24">  0x08001E24:  </span>203F         MOVS       R0, #63
+<span id="A08001e26">  0x08001E26:  </span>4088         LSLS       R0, R1
+<span id="A08001e28">  0x08001E28:  </span>60A8         STR        R0, [R5, #8]
+<span id="A08001e2a">  0x08001E2A:  </span>2001         MOVS       R0, #1
+<span id="A08001e2c">  0x08001E2C:  </span>F884 0035    STRB.W     R0, [R4, #53]
+<span id="A08001e30">  0x08001E30:  </span>6D21         LDR        R1, [R4, #80]
+<br/>.L44:
+<span id="A08001e32">  0x08001E32:  </span>2000         MOVS       R0, #0
+<span id="A08001e34">  0x08001E34:  </span>F884 0034    STRB.W     R0, [R4, #52]
+<span id="A08001e38">  0x08001E38:  </span>BBE9         CBNZ       R1, .L54                 ; 0x08001EB6
+<span id="A08001e3a">  0x08001E3A:  </span>E044         B          .L55                     ; 0x08001EC6
+<br/>.L45:
+<span id="A08001e3c">  0x08001E3C:  </span>0351         LSLS       R1, R2, #13
+<span id="A08001e3e">  0x08001E3E:  </span>6801         LDR        R1, [R0]
+<span id="A08001e40">  0x08001E40:  </span>D40C         BMI        .L46                     ; 0x08001E5C
+<span id="A08001e42">  0x08001E42:  </span>05C9         LSLS       R1, R1, #23
+<span id="A08001e44">  0x08001E44:  </span>D40E         BMI        .L47                     ; 0x08001E64
+<span id="A08001e46">  0x08001E46:  </span>6801         LDR        R1, [R0]
+<span id="A08001e48">  0x08001E48:  </span>F021 0110    BIC        R1, R1, #16
+<span id="A08001e4c">  0x08001E4C:  </span>6001         STR        R1, [R0]
+<span id="A08001e4e">  0x08001E4E:  </span>2001         MOVS       R0, #1
+<span id="A08001e50">  0x08001E50:  </span>F884 0035    STRB.W     R0, [R4, #53]
+<span id="A08001e54">  0x08001E54:  </span>2000         MOVS       R0, #0
+<span id="A08001e56">  0x08001E56:  </span>F884 0034    STRB.W     R0, [R4, #52]
+<span id="A08001e5a">  0x08001E5A:  </span>E003         B          .L47                     ; 0x08001E64
+<br/>.L46:
+<span id="A08001e5c">  0x08001E5C:  </span>0308         LSLS       R0, R1, #12
+<span id="A08001e5e">  0x08001E5E:  </span>D401         BMI        .L47                     ; 0x08001E64
+<span id="A08001e60">  0x08001E60:  </span>6C61         LDR        R1, [R4, #68]
+<span id="A08001e62">  0x08001E62:  </span>E000         B          .L48                     ; 0x08001E66
+<br/>.L47:
+<span id="A08001e64">  0x08001E64:  </span>6BE1         LDR        R1, [R4, #60]
+<br/>.L48:
+<span id="A08001e66">  0x08001E66:  </span>B121         CBZ        R1, .L49                 ; 0x08001E72
+<span id="A08001e68">  0x08001E68:  </span>F240 0088    MOVW       R0, #136                 ; 0x30000088 = hdma_spi4_tx
+<span id="A08001e6c">  0x08001E6C:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000088 = hdma_spi4_tx
+<span id="A08001e70">  0x08001E70:  </span>4788         BLX        R1
+<br/>.L49:
+<span id="A08001e72">  0x08001E72:  </span>6D60         LDR        R0, [R4, #84]
+<span id="A08001e74">  0x08001E74:  </span>B338         CBZ        R0, .L55                 ; 0x08001EC6
+<span id="A08001e76">  0x08001E76:  </span>6D60         LDR        R0, [R4, #84]
+<span id="A08001e78">  0x08001E78:  </span>07C0         LSLS       R0, R0, #31
+<span id="A08001e7a">  0x08001E7A:  </span>D01A         BEQ        .L52                     ; 0x08001EB2
+<span id="A08001e7c">  0x08001E7C:  </span>2004         MOVS       R0, #4
+<span id="A08001e7e">  0x08001E7E:  </span>F884 0035    STRB.W     R0, [R4, #53]
+<span id="A08001e82">  0x08001E82:  </span>6820         LDR        R0, [R4]
+<span id="A08001e84">  0x08001E84:  </span>6801         LDR        R1, [R0]
+<span id="A08001e86">  0x08001E86:  </span>F021 0101    BIC        R1, R1, #1
+<span id="A08001e8a">  0x08001E8A:  </span>6001         STR        R1, [R0]
+<br/>.L50:
+<span id="A08001e8c">  0x08001E8C:  </span>9901         LDR        R1, [SP, #4]
+<span id="A08001e8e">  0x08001E8E:  </span>3101         ADDS       R1, #1
+<span id="A08001e90">  0x08001E90:  </span>9101         STR        R1, [SP, #4]
+<span id="A08001e92">  0x08001E92:  </span>EBB1 2F9A    CMP.W      R1, R10, LSR #10
+<span id="A08001e96">  0x08001E96:  </span>D802         BHI        .L51                     ; 0x08001E9E
+<span id="A08001e98">  0x08001E98:  </span>6801         LDR        R1, [R0]
+<span id="A08001e9a">  0x08001E9A:  </span>07C9         LSLS       R1, R1, #31
+<span id="A08001e9c">  0x08001E9C:  </span>D1F6         BNE        .L50                     ; 0x08001E8C
+<br/>.L51:
+<span id="A08001e9e">  0x08001E9E:  </span>6800         LDR        R0, [R0]
+<span id="A08001ea0">  0x08001EA0:  </span>07C0         LSLS       R0, R0, #31
+<span id="A08001ea2">  0x08001EA2:  </span>BF14         ITE        NE
+<span id="A08001ea4">  0x08001EA4:  </span>2003         MOVNE      R0, #3
+<span id="A08001ea6">  0x08001EA6:  </span>2001         MOVEQ      R0, #1
+<span id="A08001ea8">  0x08001EA8:  </span>F884 0035    STRB.W     R0, [R4, #53]
+<span id="A08001eac">  0x08001EAC:  </span>2000         MOVS       R0, #0
+<span id="A08001eae">  0x08001EAE:  </span>F884 0034    STRB.W     R0, [R4, #52]
+<br/>.L52:
+<span id="A08001eb2">  0x08001EB2:  </span>6CE1         LDR        R1, [R4, #76]
+<br/>.L53:
+<span id="A08001eb4">  0x08001EB4:  </span>B139         CBZ        R1, .L55                 ; 0x08001EC6
+<br/>.L54:
+<span id="A08001eb6">  0x08001EB6:  </span>F240 0088    MOVW       R0, #136                 ; 0x30000088 = hdma_spi4_tx
+<span id="A08001eba">  0x08001EBA:  </span>F2C3 0000    MOVT       R0, #0x3000              ; 0x30000088 = hdma_spi4_tx
+<span id="A08001ebe">  0x08001EBE:  </span>B002         ADD        SP, SP, #8
+<span id="A08001ec0">  0x08001EC0:  </span>E8BD 47F0    POP.W      {R4-R10, LR}
+<span id="A08001ec4">  0x08001EC4:  </span>4708         BX         R1
+<br/>.L55:
+<span id="A08001ec6">  0x08001EC6:  </span>B002         ADD        SP, SP, #8
+<span id="A08001ec8">  0x08001EC8:  </span>E8BD 87F0    POP.W      {R4-R10, PC}
+<br/>.L56:
+<span id="A08001ecc">  0x08001ECC:  </span>03D0         LSLS       R0, R2, #15
+<span id="A08001ece">  0x08001ECE:  </span>D401         BMI        .L57                     ; 0x08001ED4
+<span id="A08001ed0">  0x08001ED0:  </span>6C61         LDR        R1, [R4, #68]
+<span id="A08001ed2">  0x08001ED2:  </span>E7EF         B          .L53                     ; 0x08001EB4
+<br/>.L57:
+<span id="A08001ed4">  0x08001ED4:  </span>6BE1         LDR        R1, [R4, #60]
+<span id="A08001ed6">  0x08001ED6:  </span>E7ED         B          .L53                     ; 0x08001EB4
+<br/>.L58:
+<span id="A08001ed8">  0x08001ED8:  </span>6802         LDR        R2, [R0]
+<span id="A08001eda">  0x08001EDA:  </span>E6F3         B          .L21                     ; 0x08001CC4
+<br/>.L59:
+<span id="A08001edc">  0x08001EDC:  </span>6802         LDR        R2, [R0]
+<span id="A08001ede">  0x08001EDE:  </span>E717         B          .L26                     ; 0x08001D10
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.HAL_NVIC_SetPriority from charger_lto.o, size=76, align=2">Section .text.HAL_NVIC_SetPriority from charger_lto.o, size=76, align=2</h2>
+<pre>
+<br/><span id="3wÑ
+D">HAL_NVIC_SetPriority:</span>
+<span id="A08001ee0">  0x08001EE0:  </span>B500         PUSH       {LR}
+<span id="A08001ee2">  0x08001EE2:  </span>F64E 5C0C    MOVW       R12, #0xED0C
+<span id="A08001ee6">  0x08001EE6:  </span>F04F 3EFF    MOV.W      LR, #0xFFFFFFFF
+<span id="A08001eea">  0x08001EEA:  </span>F2CE 0C00    MOVT       R12, #0xE000
+<span id="A08001eee">  0x08001EEE:  </span>F8DC 3000    LDR.W      R3, [R12]
+<span id="A08001ef2">  0x08001EF2:  </span>F3C3 2302    UBFX       R3, R3, #8, #3
+<span id="A08001ef6">  0x08001EF6:  </span>F083 0207    EOR        R2, R3, #7
+<span id="A08001efa">  0x08001EFA:  </span>2A04         CMP        R2, #4
+<span id="A08001efc">  0x08001EFC:  </span>BF28         IT         CS
+<span id="A08001efe">  0x08001EFE:  </span>2204         MOVCS      R2, #4
+<span id="A08001f00">  0x08001F00:  </span>FA0E F202    LSL.W      R2, LR, R2
+<span id="A08001f04">  0x08001F04:  </span>4391         BICS       R1, R2
+<span id="A08001f06">  0x08001F06:  </span>3B03         SUBS       R3, #3
+<span id="A08001f08">  0x08001F08:  </span>F000 020F    AND        R2, R0, #15
+<span id="A08001f0c">  0x08001F0C:  </span>BF28         IT         CS
+<span id="A08001f0e">  0x08001F0E:  </span>4099         LSLCS      R1, R3
+<span id="A08001f10">  0x08001F10:  </span>F100 4360    ADD.W      R3, R0, #0xE0000000
+<span id="A08001f14">  0x08001F14:  </span>3A04         SUBS       R2, #4
+<span id="A08001f16">  0x08001F16:  </span>F503 4364    ADD.W      R3, R3, #0xE400
+<span id="A08001f1a">  0x08001F1A:  </span>4462         ADD        R2, R12
+<span id="A08001f1c">  0x08001F1C:  </span>2800         CMP        R0, #0
+<span id="A08001f1e">  0x08001F1E:  </span>EA4F 1001    LSL.W      R0, R1, #4
+<span id="A08001f22">  0x08001F22:  </span>BF48         IT         MI
+<span id="A08001f24">  0x08001F24:  </span>F102 030C    ADDMI.W    R3, R2, #12
+<span id="A08001f28">  0x08001F28:  </span>7018         STRB       R0, [R3]
+<span id="A08001f2a">  0x08001F2A:  </span>BD00         POP        {PC}
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.RCCEx_PLL2_Config from charger_lto.o, size=272, align=2">Section .text.RCCEx_PLL2_Config from charger_lto.o, size=272, align=2</h2>
+<pre>
+<br/><span id="zÑ
+D">RCCEx_PLL2_Config:</span>
+<span id="A08001f2c">  0x08001F2C:  </span>B570         PUSH       {R4-R6, LR}
+<span id="A08001f2e">  0x08001F2E:  </span>F244 4300    MOVW       R3, #0x4400
+<span id="A08001f32">  0x08001F32:  </span>F6C5 0302    MOVT       R3, #0x5802
+<span id="A08001f36">  0x08001F36:  </span>F8D3 E028    LDR.W      LR, [R3, #40]
+<span id="A08001f3a">  0x08001F3A:  </span>F00E 0E03    AND        LR, LR, #3
+<span id="A08001f3e">  0x08001F3E:  </span>F1BE 0F03    CMP.W      LR, #3
+<span id="A08001f42">  0x08001F42:  </span>BF04         ITT        EQ
+<span id="A08001f44">  0x08001F44:  </span>2001         MOVEQ      R0, #1
+<span id="A08001f46">  0x08001F46:  </span>BD70         POPEQ      {R4-R6, PC}
+<span id="A08001f48">  0x08001F48:  </span>F240 1C24    MOVW       R12, #0x0124             ; 0x30000124 = uwTick
+<span id="A08001f4c">  0x08001F4C:  </span>F8D3 E000    LDR.W      LR, [R3]
+<span id="A08001f50">  0x08001F50:  </span>F2C3 0C00    MOVT       R12, #0x3000             ; 0x30000124 = uwTick
+<span id="A08001f54">  0x08001F54:  </span>F02E 6E80    BIC        LR, LR, #0x04000000
+<span id="A08001f58">  0x08001F58:  </span>F8C3 E000    STR.W      LR, [R3]
+<span id="A08001f5c">  0x08001F5C:  </span>F8DC E000    LDR.W      LR, [R12]
+<br/>.L1:
+<span id="A08001f60">  0x08001F60:  </span>681A         LDR        R2, [R3]
+<span id="A08001f62">  0x08001F62:  </span>0112         LSLS       R2, R2, #4
+<span id="A08001f64">  0x08001F64:  </span>D506         BPL        .L2                      ; 0x08001F74
+<span id="A08001f66">  0x08001F66:  </span>F8DC 2000    LDR.W      R2, [R12]
+<span id="A08001f6a">  0x08001F6A:  </span>EBA2 020E    SUB.W      R2, R2, LR
+<span id="A08001f6e">  0x08001F6E:  </span>2A02         CMP        R2, #2
+<span id="A08001f70">  0x08001F70:  </span>D9F6         BLS        .L1                      ; 0x08001F60
+<span id="A08001f72">  0x08001F72:  </span>E05F         B          .L4                      ; 0x08002034
+<br/>.L2:
+<span id="A08001f74">  0x08001F74:  </span>6A9A         LDR        R2, [R3, #40]
+<span id="A08001f76">  0x08001F76:  </span>2901         CMP        R1, #1
+<span id="A08001f78">  0x08001F78:  </span>E9D0 E400    LDRD       LR, R4, [R0]
+<span id="A08001f7c">  0x08001F7C:  </span>F422 327C    BIC        R2, R2, #0x03F000
+<span id="A08001f80">  0x08001F80:  </span>E9D0 5602    LDRD       R5, R6, [R0, #8]
+<span id="A08001f84">  0x08001F84:  </span>EA42 320E    ORR.W      R2, R2, LR, LSL #12
+<span id="A08001f88">  0x08001F88:  </span>629A         STR        R2, [R3, #40]
+<span id="A08001f8a">  0x08001F8A:  </span>F44F 427E    MOV.W      R2, #0xFE00
+<span id="A08001f8e">  0x08001F8E:  </span>F1A4 0E01    SUB.W      LR, R4, #1
+<span id="A08001f92">  0x08001F92:  </span>EB02 2245    ADD.W      R2, R2, R5, LSL #9
+<span id="A08001f96">  0x08001F96:  </span>6904         LDR        R4, [R0, #16]
+<span id="A08001f98">  0x08001F98:  </span>F36F 2E5F    BFC        LR, #9, #23
+<span id="A08001f9c">  0x08001F9C:  </span>F04F 45FE    MOV.W      R5, #0x7F000000
+<span id="A08001fa0">  0x08001FA0:  </span>FA1E F282    UXTAH      R2, LR, R2
+<span id="A08001fa4">  0x08001FA4:  </span>F44F 0EFE    MOV.W      LR, #0x7F0000
+<span id="A08001fa8">  0x08001FA8:  </span>EB0E 4E06    ADD.W      LR, LR, R6, LSL #16
+<span id="A08001fac">  0x08001FAC:  </span>F40E 0EFE    AND        LR, LR, #0x7F0000
+<span id="A08001fb0">  0x08001FB0:  </span>EB05 6404    ADD.W      R4, R5, R4, LSL #24
+<span id="A08001fb4">  0x08001FB4:  </span>4472         ADD        R2, LR
+<span id="A08001fb6">  0x08001FB6:  </span>F004 4EFE    AND        LR, R4, #0x7F000000
+<span id="A08001fba">  0x08001FBA:  </span>4472         ADD        R2, LR
+<span id="A08001fbc">  0x08001FBC:  </span>639A         STR        R2, [R3, #56]
+<span id="A08001fbe">  0x08001FBE:  </span>6ADA         LDR        R2, [R3, #44]
+<span id="A08001fc0">  0x08001FC0:  </span>F8D0 E014    LDR.W      LR, [R0, #20]
+<span id="A08001fc4">  0x08001FC4:  </span>F022 02C0    BIC        R2, R2, #192
+<span id="A08001fc8">  0x08001FC8:  </span>EA42 020E    ORR.W      R2, R2, LR
+<span id="A08001fcc">  0x08001FCC:  </span>62DA         STR        R2, [R3, #44]
+<span id="A08001fce">  0x08001FCE:  </span>6ADA         LDR        R2, [R3, #44]
+<span id="A08001fd0">  0x08001FD0:  </span>F8D0 E018    LDR.W      LR, [R0, #24]
+<span id="A08001fd4">  0x08001FD4:  </span>F022 0220    BIC        R2, R2, #32
+<span id="A08001fd8">  0x08001FD8:  </span>EA42 020E    ORR.W      R2, R2, LR
+<span id="A08001fdc">  0x08001FDC:  </span>62DA         STR        R2, [R3, #44]
+<span id="A08001fde">  0x08001FDE:  </span>6ADA         LDR        R2, [R3, #44]
+<span id="A08001fe0">  0x08001FE0:  </span>F64F 7EF8    MOVW       LR, #0xFFF8
+<span id="A08001fe4">  0x08001FE4:  </span>F022 0210    BIC        R2, R2, #16
+<span id="A08001fe8">  0x08001FE8:  </span>62DA         STR        R2, [R3, #44]
+<span id="A08001fea">  0x08001FEA:  </span>6BDA         LDR        R2, [R3, #60]
+<span id="A08001fec">  0x08001FEC:  </span>69C0         LDR        R0, [R0, #28]
+<span id="A08001fee">  0x08001FEE:  </span>EA22 020E    BIC.W      R2, R2, LR
+<span id="A08001ff2">  0x08001FF2:  </span>EA42 00C0    ORR.W      R0, R2, R0, LSL #3
+<span id="A08001ff6">  0x08001FF6:  </span>63D8         STR        R0, [R3, #60]
+<span id="A08001ff8">  0x08001FF8:  </span>6AD8         LDR        R0, [R3, #44]
+<span id="A08001ffa">  0x08001FFA:  </span>F040 0010    ORR        R0, R0, #16
+<span id="A08001ffe">  0x08001FFE:  </span>62D8         STR        R0, [R3, #44]
+<span id="A08002000">  0x08002000:  </span>F44F 1000    MOV.W      R0, #0x200000
+<span id="A08002004">  0x08002004:  </span>BF08         IT         EQ
+<span id="A08002006">  0x08002006:  </span>F44F 1080    MOVEQ.W    R0, #0x100000
+<span id="A0800200a">  0x0800200A:  </span>2900         CMP        R1, #0
+<span id="A0800200c">  0x0800200C:  </span>6AD9         LDR        R1, [R3, #44]
+<span id="A0800200e">  0x0800200E:  </span>BF08         IT         EQ
+<span id="A08002010">  0x08002010:  </span>F44F 2000    MOVEQ.W    R0, #0x080000
+<span id="A08002014">  0x08002014:  </span>4308         ORRS       R0, R1
+<span id="A08002016">  0x08002016:  </span>62D8         STR        R0, [R3, #44]
+<span id="A08002018">  0x08002018:  </span>6818         LDR        R0, [R3]
+<span id="A0800201a">  0x0800201A:  </span>F040 6080    ORR        R0, R0, #0x04000000
+<span id="A0800201e">  0x0800201E:  </span>6018         STR        R0, [R3]
+<span id="A08002020">  0x08002020:  </span>F8DC 0000    LDR.W      R0, [R12]
+<br/>.L3:
+<span id="A08002024">  0x08002024:  </span>6819         LDR        R1, [R3]
+<span id="A08002026">  0x08002026:  </span>0109         LSLS       R1, R1, #4
+<span id="A08002028">  0x08002028:  </span>D406         BMI        .L5                      ; 0x08002038
+<span id="A0800202a">  0x0800202A:  </span>F8DC 1000    LDR.W      R1, [R12]
+<span id="A0800202e">  0x0800202E:  </span>1A09         SUBS       R1, R1, R0
+<span id="A08002030">  0x08002030:  </span>2903         CMP        R1, #3
+<span id="A08002032">  0x08002032:  </span>D3F7         BCC        .L3                      ; 0x08002024
+<br/>.L4:
+<span id="A08002034">  0x08002034:  </span>2003         MOVS       R0, #3
+<span id="A08002036">  0x08002036:  </span>BD70         POP        {R4-R6, PC}
+<br/>.L5:
+<span id="A08002038">  0x08002038:  </span>2000         MOVS       R0, #0
+<span id="A0800203a">  0x0800203A:  </span>BD70         POP        {R4-R6, PC}
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.RCCEx_PLL3_Config from charger_lto.o, size=272, align=2">Section .text.RCCEx_PLL3_Config from charger_lto.o, size=272, align=2</h2>
+<pre>
+<br/><span id="øyÑ
+D">RCCEx_PLL3_Config:</span>
+<span id="A0800203c">  0x0800203C:  </span>B570         PUSH       {R4-R6, LR}
+<span id="A0800203e">  0x0800203E:  </span>F244 4300    MOVW       R3, #0x4400
+<span id="A08002042">  0x08002042:  </span>F6C5 0302    MOVT       R3, #0x5802
+<span id="A08002046">  0x08002046:  </span>F8D3 E028    LDR.W      LR, [R3, #40]
+<span id="A0800204a">  0x0800204A:  </span>F00E 0E03    AND        LR, LR, #3
+<span id="A0800204e">  0x0800204E:  </span>F1BE 0F03    CMP.W      LR, #3
+<span id="A08002052">  0x08002052:  </span>BF04         ITT        EQ
+<span id="A08002054">  0x08002054:  </span>2001         MOVEQ      R0, #1
+<span id="A08002056">  0x08002056:  </span>BD70         POPEQ      {R4-R6, PC}
+<span id="A08002058">  0x08002058:  </span>F240 1C24    MOVW       R12, #0x0124             ; 0x30000124 = uwTick
+<span id="A0800205c">  0x0800205C:  </span>F8D3 E000    LDR.W      LR, [R3]
+<span id="A08002060">  0x08002060:  </span>F2C3 0C00    MOVT       R12, #0x3000             ; 0x30000124 = uwTick
+<span id="A08002064">  0x08002064:  </span>F02E 5E80    BIC        LR, LR, #0x10000000
+<span id="A08002068">  0x08002068:  </span>F8C3 E000    STR.W      LR, [R3]
+<span id="A0800206c">  0x0800206C:  </span>F8DC E000    LDR.W      LR, [R12]
+<br/>.L1:
+<span id="A08002070">  0x08002070:  </span>681A         LDR        R2, [R3]
+<span id="A08002072">  0x08002072:  </span>0092         LSLS       R2, R2, #2
+<span id="A08002074">  0x08002074:  </span>D506         BPL        .L2                      ; 0x08002084
+<span id="A08002076">  0x08002076:  </span>F8DC 2000    LDR.W      R2, [R12]
+<span id="A0800207a">  0x0800207A:  </span>EBA2 020E    SUB.W      R2, R2, LR
+<span id="A0800207e">  0x0800207E:  </span>2A02         CMP        R2, #2
+<span id="A08002080">  0x08002080:  </span>D9F6         BLS        .L1                      ; 0x08002070
+<span id="A08002082">  0x08002082:  </span>E05F         B          .L4                      ; 0x08002144
+<br/>.L2:
+<span id="A08002084">  0x08002084:  </span>6A9A         LDR        R2, [R3, #40]
+<span id="A08002086">  0x08002086:  </span>2901         CMP        R1, #1
+<span id="A08002088">  0x08002088:  </span>E9D0 E400    LDRD       LR, R4, [R0]
+<span id="A0800208c">  0x0800208C:  </span>F022 727C    BIC        R2, R2, #0x03F00000
+<span id="A08002090">  0x08002090:  </span>E9D0 5602    LDRD       R5, R6, [R0, #8]
+<span id="A08002094">  0x08002094:  </span>EA42 520E    ORR.W      R2, R2, LR, LSL #20
+<span id="A08002098">  0x08002098:  </span>629A         STR        R2, [R3, #40]
+<span id="A0800209a">  0x0800209A:  </span>F44F 427E    MOV.W      R2, #0xFE00
+<span id="A0800209e">  0x0800209E:  </span>F1A4 0E01    SUB.W      LR, R4, #1
+<span id="A080020a2">  0x080020A2:  </span>EB02 2245    ADD.W      R2, R2, R5, LSL #9
+<span id="A080020a6">  0x080020A6:  </span>6904         LDR        R4, [R0, #16]
+<span id="A080020a8">  0x080020A8:  </span>F36F 2E5F    BFC        LR, #9, #23
+<span id="A080020ac">  0x080020AC:  </span>F04F 45FE    MOV.W      R5, #0x7F000000
+<span id="A080020b0">  0x080020B0:  </span>FA1E F282    UXTAH      R2, LR, R2
+<span id="A080020b4">  0x080020B4:  </span>F44F 0EFE    MOV.W      LR, #0x7F0000
+<span id="A080020b8">  0x080020B8:  </span>EB0E 4E06    ADD.W      LR, LR, R6, LSL #16
+<span id="A080020bc">  0x080020BC:  </span>F40E 0EFE    AND        LR, LR, #0x7F0000
+<span id="A080020c0">  0x080020C0:  </span>EB05 6404    ADD.W      R4, R5, R4, LSL #24
+<span id="A080020c4">  0x080020C4:  </span>4472         ADD        R2, LR
+<span id="A080020c6">  0x080020C6:  </span>F004 4EFE    AND        LR, R4, #0x7F000000
+<span id="A080020ca">  0x080020CA:  </span>4472         ADD        R2, LR
+<span id="A080020cc">  0x080020CC:  </span>641A         STR        R2, [R3, #64]
+<span id="A080020ce">  0x080020CE:  </span>6ADA         LDR        R2, [R3, #44]
+<span id="A080020d0">  0x080020D0:  </span>F8D0 E014    LDR.W      LR, [R0, #20]
+<span id="A080020d4">  0x080020D4:  </span>F422 6240    BIC        R2, R2, #0x0C00
+<span id="A080020d8">  0x080020D8:  </span>EA42 020E    ORR.W      R2, R2, LR
+<span id="A080020dc">  0x080020DC:  </span>62DA         STR        R2, [R3, #44]
+<span id="A080020de">  0x080020DE:  </span>6ADA         LDR        R2, [R3, #44]
+<span id="A080020e0">  0x080020E0:  </span>F8D0 E018    LDR.W      LR, [R0, #24]
+<span id="A080020e4">  0x080020E4:  </span>F422 7200    BIC        R2, R2, #0x0200
+<span id="A080020e8">  0x080020E8:  </span>EA42 020E    ORR.W      R2, R2, LR
+<span id="A080020ec">  0x080020EC:  </span>62DA         STR        R2, [R3, #44]
+<span id="A080020ee">  0x080020EE:  </span>6ADA         LDR        R2, [R3, #44]
+<span id="A080020f0">  0x080020F0:  </span>F64F 7EF8    MOVW       LR, #0xFFF8
+<span id="A080020f4">  0x080020F4:  </span>F422 7280    BIC        R2, R2, #0x0100
+<span id="A080020f8">  0x080020F8:  </span>62DA         STR        R2, [R3, #44]
+<span id="A080020fa">  0x080020FA:  </span>6C5A         LDR        R2, [R3, #68]
+<span id="A080020fc">  0x080020FC:  </span>69C0         LDR        R0, [R0, #28]
+<span id="A080020fe">  0x080020FE:  </span>EA22 020E    BIC.W      R2, R2, LR
+<span id="A08002102">  0x08002102:  </span>EA42 00C0    ORR.W      R0, R2, R0, LSL #3
+<span id="A08002106">  0x08002106:  </span>6458         STR        R0, [R3, #68]
+<span id="A08002108">  0x08002108:  </span>6AD8         LDR        R0, [R3, #44]
+<span id="A0800210a">  0x0800210A:  </span>F440 7080    ORR        R0, R0, #0x0100
+<span id="A0800210e">  0x0800210E:  </span>62D8         STR        R0, [R3, #44]
+<span id="A08002110">  0x08002110:  </span>F04F 7080    MOV.W      R0, #0x01000000
+<span id="A08002114">  0x08002114:  </span>BF08         IT         EQ
+<span id="A08002116">  0x08002116:  </span>F44F 0000    MOVEQ.W    R0, #0x800000
+<span id="A0800211a">  0x0800211A:  </span>2900         CMP        R1, #0
+<span id="A0800211c">  0x0800211C:  </span>6AD9         LDR        R1, [R3, #44]
+<span id="A0800211e">  0x0800211E:  </span>BF08         IT         EQ
+<span id="A08002120">  0x08002120:  </span>F44F 0080    MOVEQ.W    R0, #0x400000
+<span id="A08002124">  0x08002124:  </span>4308         ORRS       R0, R1
+<span id="A08002126">  0x08002126:  </span>62D8         STR        R0, [R3, #44]
+<span id="A08002128">  0x08002128:  </span>6818         LDR        R0, [R3]
+<span id="A0800212a">  0x0800212A:  </span>F040 5080    ORR        R0, R0, #0x10000000
+<span id="A0800212e">  0x0800212E:  </span>6018         STR        R0, [R3]
+<span id="A08002130">  0x08002130:  </span>F8DC 0000    LDR.W      R0, [R12]
+<br/>.L3:
+<span id="A08002134">  0x08002134:  </span>6819         LDR        R1, [R3]
+<span id="A08002136">  0x08002136:  </span>0089         LSLS       R1, R1, #2
+<span id="A08002138">  0x08002138:  </span>D406         BMI        .L5                      ; 0x08002148
+<span id="A0800213a">  0x0800213A:  </span>F8DC 1000    LDR.W      R1, [R12]
+<span id="A0800213e">  0x0800213E:  </span>1A09         SUBS       R1, R1, R0
+<span id="A08002140">  0x08002140:  </span>2903         CMP        R1, #3
+<span id="A08002142">  0x08002142:  </span>D3F7         BCC        .L3                      ; 0x08002134
+<br/>.L4:
+<span id="A08002144">  0x08002144:  </span>2003         MOVS       R0, #3
+<span id="A08002146">  0x08002146:  </span>BD70         POP        {R4-R6, PC}
+<br/>.L5:
+<span id="A08002148">  0x08002148:  </span>2000         MOVS       R0, #0
+<span id="A0800214a">  0x0800214A:  </span>BD70         POP        {R4-R6, PC}
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.HAL_DMA_Abort_IT from charger_lto.o, size=428, align=2">Section .text.HAL_DMA_Abort_IT from charger_lto.o, size=428, align=2</h2>
+<pre>
+<br/><span id="¢zÑ
+D">HAL_DMA_Abort_IT:</span>
+<span id="A0800214c">  0x0800214C:  </span>F890 1035    LDRB.W     R1, [R0, #53]
+<span id="A08002150">  0x08002150:  </span>2902         CMP        R1, #2
+<span id="A08002152">  0x08002152:  </span>D116         BNE        .L1                      ; 0x08002182
+<span id="A08002154">  0x08002154:  </span>B580         PUSH       {R7, LR}
+<span id="A08002156">  0x08002156:  </span>F240 420F    MOVW       R2, #0x040F
+<span id="A0800215a">  0x0800215A:  </span>6801         LDR        R1, [R0]
+<span id="A0800215c">  0x0800215C:  </span>F2C4 0202    MOVT       R2, #0x4002
+<span id="A08002160">  0x08002160:  </span>4291         CMP        R1, R2
+<span id="A08002162">  0x08002162:  </span>DC12         BGT        .L2                      ; 0x0800218A
+<span id="A08002164">  0x08002164:  </span>F5A2 7C68    SUB.W      R12, R2, #0x03A0
+<span id="A08002168">  0x08002168:  </span>4561         CMP        R1, R12
+<span id="A0800216a">  0x0800216A:  </span>DC1D         BGT        .L3                      ; 0x080021A8
+<span id="A0800216c">  0x0800216C:  </span>F5A2 7C74    SUB.W      R12, R2, #0x03D0
+<span id="A08002170">  0x08002170:  </span>4561         CMP        R1, R12
+<span id="A08002172">  0x08002172:  </span>DC2F         BGT        .L5                      ; 0x080021D4
+<span id="A08002174">  0x08002174:  </span>F2A2 3CFF    SUBW       R12, R2, #0x03FF
+<span id="A08002178">  0x08002178:  </span>4561         CMP        R1, R12
+<span id="A0800217a">  0x0800217A:  </span>D048         BEQ        .L10                     ; 0x0800220E
+<span id="A0800217c">  0x0800217C:  </span>F2A2 3CE7    SUBW       R12, R2, #0x03E7
+<span id="A08002180">  0x08002180:  </span>E043         B          .L9                      ; 0x0800220A
+<br/>.L1:
+<span id="A08002182">  0x08002182:  </span>2180         MOVS       R1, #128
+<span id="A08002184">  0x08002184:  </span>6541         STR        R1, [R0, #84]
+<span id="A08002186">  0x08002186:  </span>2101         MOVS       R1, #1
+<span id="A08002188">  0x08002188:  </span>E063         B          .L19                     ; 0x08002252
+<br/>.L2:
+<span id="A0800218a">  0x0800218A:  </span>F102 0C60    ADD.W      R12, R2, #96
+<span id="A0800218e">  0x0800218E:  </span>4561         CMP        R1, R12
+<span id="A08002190">  0x08002190:  </span>DC15         BGT        .L4                      ; 0x080021BE
+<span id="A08002192">  0x08002192:  </span>F102 0C30    ADD.W      R12, R2, #48
+<span id="A08002196">  0x08002196:  </span>4561         CMP        R1, R12
+<span id="A08002198">  0x08002198:  </span>DC23         BGT        .L6                      ; 0x080021E2
+<span id="A0800219a">  0x0800219A:  </span>F102 0C01    ADD.W      R12, R2, #1
+<span id="A0800219e">  0x0800219E:  </span>4561         CMP        R1, R12
+<span id="A080021a0">  0x080021A0:  </span>D035         BEQ        .L10                     ; 0x0800220E
+<span id="A080021a2">  0x080021A2:  </span>F102 0C19    ADD.W      R12, R2, #25
+<span id="A080021a6">  0x080021A6:  </span>E030         B          .L9                      ; 0x0800220A
+<br/>.L3:
+<span id="A080021a8">  0x080021A8:  </span>F5A2 7C5C    SUB.W      R12, R2, #0x0370
+<span id="A080021ac">  0x080021AC:  </span>4561         CMP        R1, R12
+<span id="A080021ae">  0x080021AE:  </span>DC1F         BGT        .L7                      ; 0x080021F0
+<span id="A080021b0">  0x080021B0:  </span>F2A2 3C9F    SUBW       R12, R2, #0x039F
+<span id="A080021b4">  0x080021B4:  </span>4561         CMP        R1, R12
+<span id="A080021b6">  0x080021B6:  </span>D02A         BEQ        .L10                     ; 0x0800220E
+<span id="A080021b8">  0x080021B8:  </span>F2A2 3C87    SUBW       R12, R2, #0x0387
+<span id="A080021bc">  0x080021BC:  </span>E025         B          .L9                      ; 0x0800220A
+<br/>.L4:
+<span id="A080021be">  0x080021BE:  </span>F102 0C90    ADD.W      R12, R2, #144
+<span id="A080021c2">  0x080021C2:  </span>4561         CMP        R1, R12
+<span id="A080021c4">  0x080021C4:  </span>DC1B         BGT        .L8                      ; 0x080021FE
+<span id="A080021c6">  0x080021C6:  </span>F102 0C61    ADD.W      R12, R2, #97
+<span id="A080021ca">  0x080021CA:  </span>4561         CMP        R1, R12
+<span id="A080021cc">  0x080021CC:  </span>D01F         BEQ        .L10                     ; 0x0800220E
+<span id="A080021ce">  0x080021CE:  </span>F102 0C79    ADD.W      R12, R2, #121
+<span id="A080021d2">  0x080021D2:  </span>E01A         B          .L9                      ; 0x0800220A
+<br/>.L5:
+<span id="A080021d4">  0x080021D4:  </span>F2A2 3CCF    SUBW       R12, R2, #0x03CF
+<span id="A080021d8">  0x080021D8:  </span>4561         CMP        R1, R12
+<span id="A080021da">  0x080021DA:  </span>D018         BEQ        .L10                     ; 0x0800220E
+<span id="A080021dc">  0x080021DC:  </span>F2A2 3CB7    SUBW       R12, R2, #0x03B7
+<span id="A080021e0">  0x080021E0:  </span>E013         B          .L9                      ; 0x0800220A
+<br/>.L6:
+<span id="A080021e2">  0x080021E2:  </span>F102 0C31    ADD.W      R12, R2, #49
+<span id="A080021e6">  0x080021E6:  </span>4561         CMP        R1, R12
+<span id="A080021e8">  0x080021E8:  </span>D011         BEQ        .L10                     ; 0x0800220E
+<span id="A080021ea">  0x080021EA:  </span>F102 0C49    ADD.W      R12, R2, #73
+<span id="A080021ee">  0x080021EE:  </span>E00C         B          .L9                      ; 0x0800220A
+<br/>.L7:
+<span id="A080021f0">  0x080021F0:  </span>F2A2 3C6F    SUBW       R12, R2, #0x036F
+<span id="A080021f4">  0x080021F4:  </span>4561         CMP        R1, R12
+<span id="A080021f6">  0x080021F6:  </span>D00A         BEQ        .L10                     ; 0x0800220E
+<span id="A080021f8">  0x080021F8:  </span>F2A2 3C57    SUBW       R12, R2, #0x0357
+<span id="A080021fc">  0x080021FC:  </span>E005         B          .L9                      ; 0x0800220A
+<br/>.L8:
+<span id="A080021fe">  0x080021FE:  </span>F102 0CA9    ADD.W      R12, R2, #169
+<span id="A08002202">  0x08002202:  </span>4561         CMP        R1, R12
+<span id="A08002204">  0x08002204:  </span>D003         BEQ        .L10                     ; 0x0800220E
+<span id="A08002206">  0x08002206:  </span>F102 0C91    ADD.W      R12, R2, #145
+<br/>.L9:
+<span id="A0800220a">  0x0800220A:  </span>4561         CMP        R1, R12
+<span id="A0800220c">  0x0800220C:  </span>D128         BNE        .L21                     ; 0x08002260
+<br/>.L10:
+<span id="A0800220e">  0x0800220E:  </span>4291         CMP        R1, R2
+<span id="A08002210">  0x08002210:  </span>F04F 0204    MOV.W      R2, #4
+<span id="A08002214">  0x08002214:  </span>F880 2035    STRB.W     R2, [R0, #53]
+<span id="A08002218">  0x08002218:  </span>DC06         BGT        .L11                     ; 0x08002228
+<span id="A0800221a">  0x0800221A:  </span>206F         MOVS       R0, #111
+<span id="A0800221c">  0x0800221C:  </span>F2C4 0002    MOVT       R0, #0x4002
+<span id="A08002220">  0x08002220:  </span>4281         CMP        R1, R0
+<span id="A08002222">  0x08002222:  </span>DD07         BLE        .L12                     ; 0x08002234
+<span id="A08002224">  0x08002224:  </span>3030         ADDS       R0, #48
+<span id="A08002226">  0x08002226:  </span>E006         B          .L13                     ; 0x08002236
+<br/>.L11:
+<span id="A08002228">  0x08002228:  </span>F240 406F    MOVW       R0, #0x046F
+<span id="A0800222c">  0x0800222C:  </span>F2C4 0002    MOVT       R0, #0x4002
+<span id="A08002230">  0x08002230:  </span>4281         CMP        R1, R0
+<span id="A08002232">  0x08002232:  </span>DC03         BGT        .L14                     ; 0x0800223C
+<br/>.L12:
+<span id="A08002234">  0x08002234:  </span>3830         SUBS       R0, #48
+<br/>.L13:
+<span id="A08002236">  0x08002236:  </span>4281         CMP        R1, R0
+<span id="A08002238">  0x08002238:  </span>DD03         BLE        .L15                     ; 0x08002242
+<span id="A0800223a">  0x0800223A:  </span>E003         B          .L16                     ; 0x08002244
+<br/>.L14:
+<span id="A0800223c">  0x0800223C:  </span>3030         ADDS       R0, #48
+<span id="A0800223e">  0x0800223E:  </span>4281         CMP        R1, R0
+<span id="A08002240">  0x08002240:  </span>DC09         BGT        .L20                     ; 0x08002256
+<br/>.L15:
+<span id="A08002242">  0x08002242:  </span>382F         SUBS       R0, #47
+<br/>.L16:
+<span id="A08002244">  0x08002244:  </span>6808         LDR        R0, [R1]
+<span id="A08002246">  0x08002246:  </span>F020 0001    BIC        R0, R0, #1
+<span id="A0800224a">  0x0800224A:  </span>6008         STR        R0, [R1]
+<br/>.L17:
+<span id="A0800224c">  0x0800224C:  </span>2100         MOVS       R1, #0
+<br/>.L18:
+<span id="A0800224e">  0x0800224E:  </span>E8BD 4008    POP.W      {R3, LR}
+<br/>.L19:
+<span id="A08002252">  0x08002252:  </span>4608         MOV        R0, R1
+<span id="A08002254">  0x08002254:  </span>4770         BX         LR
+<br/>.L20:
+<span id="A08002256">  0x08002256:  </span>3019         ADDS       R0, #25
+<span id="A08002258">  0x08002258:  </span>4281         CMP        R1, R0
+<span id="A0800225a">  0x0800225A:  </span>BF18         IT         NE
+<span id="A0800225c">  0x0800225C:  </span>3818         SUBNE      R0, #24
+<span id="A0800225e">  0x0800225E:  </span>E7F1         B          .L16                     ; 0x08002244
+<br/>.L21:
+<span id="A08002260">  0x08002260:  </span>680A         LDR        R2, [R1]
+<span id="A08002262">  0x08002262:  </span>F022 020E    BIC        R2, R2, #14
+<span id="A08002266">  0x08002266:  </span>600A         STR        R2, [R1]
+<span id="A08002268">  0x08002268:  </span>F245 4257    MOVW       R2, #0x5457
+<span id="A0800226c">  0x0800226C:  </span>F6C5 0202    MOVT       R2, #0x5802
+<span id="A08002270">  0x08002270:  </span>4291         CMP        R1, R2
+<span id="A08002272">  0x08002272:  </span>680A         LDR        R2, [R1]
+<span id="A08002274">  0x08002274:  </span>F022 0201    BIC        R2, R2, #1
+<span id="A08002278">  0x08002278:  </span>600A         STR        R2, [R1]
+<span id="A0800227a">  0x0800227A:  </span>DC07         BGT        .L22                     ; 0x0800228C
+<span id="A0800227c">  0x0800227C:  </span>F245 422F    MOVW       R2, #0x542F
+<span id="A08002280">  0x08002280:  </span>F6C5 0202    MOVT       R2, #0x5802
+<span id="A08002284">  0x08002284:  </span>4291         CMP        R1, R2
+<span id="A08002286">  0x08002286:  </span>DD07         BLE        .L23                     ; 0x08002298
+<span id="A08002288">  0x08002288:  </span>3201         ADDS       R2, #1
+<span id="A0800228a">  0x0800228A:  </span>E006         B          .L24                     ; 0x0800229A
+<br/>.L22:
+<span id="A0800228c">  0x0800228C:  </span>F245 427F    MOVW       R2, #0x547F
+<span id="A08002290">  0x08002290:  </span>F6C5 0202    MOVT       R2, #0x5802
+<span id="A08002294">  0x08002294:  </span>4291         CMP        R1, R2
+<span id="A08002296">  0x08002296:  </span>DC04         BGT        .L25                     ; 0x080022A2
+<br/>.L23:
+<span id="A08002298">  0x08002298:  </span>3A27         SUBS       R2, #39
+<br/>.L24:
+<span id="A0800229a">  0x0800229A:  </span>4291         CMP        R1, R2
+<span id="A0800229c">  0x0800229C:  </span>D007         BEQ        .L27                     ; 0x080022AE
+<span id="A0800229e">  0x0800229E:  </span>3214         ADDS       R2, #20
+<span id="A080022a0">  0x080022A0:  </span>E003         B          .L26                     ; 0x080022AA
+<br/>.L25:
+<span id="A080022a2">  0x080022A2:  </span>3215         ADDS       R2, #21
+<span id="A080022a4">  0x080022A4:  </span>4291         CMP        R1, R2
+<span id="A080022a6">  0x080022A6:  </span>D002         BEQ        .L27                     ; 0x080022AE
+<span id="A080022a8">  0x080022A8:  </span>3A14         SUBS       R2, #20
+<br/>.L26:
+<span id="A080022aa">  0x080022AA:  </span>4291         CMP        R1, R2
+<span id="A080022ac">  0x080022AC:  </span>D119         BNE        .L28                     ; 0x080022E2
+<br/>.L27:
+<span id="A080022ae">  0x080022AE:  </span>E9D0 1318    LDRD       R1, R3, [R0, #96]
+<span id="A080022b2">  0x080022B2:  </span>E9D0 EC16    LDRD       LR, R12, [R0, #88]
+<span id="A080022b6">  0x080022B6:  </span>680A         LDR        R2, [R1]
+<span id="A080022b8">  0x080022B8:  </span>F422 7280    BIC        R2, R2, #0x0100
+<span id="A080022bc">  0x080022BC:  </span>600A         STR        R2, [R1]
+<span id="A080022be">  0x080022BE:  </span>F00C 011F    AND        R1, R12, #31
+<span id="A080022c2">  0x080022C2:  </span>2201         MOVS       R2, #1
+<span id="A080022c4">  0x080022C4:  </span>FA02 F101    LSL.W      R1, R2, R1
+<span id="A080022c8">  0x080022C8:  </span>F8CE 1004    STR.W      R1, [LR, #4]
+<span id="A080022cc">  0x080022CC:  </span>6E81         LDR        R1, [R0, #104]
+<span id="A080022ce">  0x080022CE:  </span>6059         STR        R1, [R3, #4]
+<span id="A080022d0">  0x080022D0:  </span>6EC1         LDR        R1, [R0, #108]
+<span id="A080022d2">  0x080022D2:  </span>B131         CBZ        R1, .L28                 ; 0x080022E2
+<span id="A080022d4">  0x080022D4:  </span>680A         LDR        R2, [R1]
+<span id="A080022d6">  0x080022D6:  </span>F422 7280    BIC        R2, R2, #0x0100
+<span id="A080022da">  0x080022DA:  </span>600A         STR        R2, [R1]
+<span id="A080022dc">  0x080022DC:  </span>E9D0 121C    LDRD       R1, R2, [R0, #112]
+<span id="A080022e0">  0x080022E0:  </span>604A         STR        R2, [R1, #4]
+<br/>.L28:
+<span id="A080022e2">  0x080022E2:  </span>2101         MOVS       R1, #1
+<span id="A080022e4">  0x080022E4:  </span>F880 1035    STRB.W     R1, [R0, #53]
+<span id="A080022e8">  0x080022E8:  </span>6D02         LDR        R2, [R0, #80]
+<span id="A080022ea">  0x080022EA:  </span>2100         MOVS       R1, #0
+<span id="A080022ec">  0x080022EC:  </span>2A00         CMP        R2, #0
+<span id="A080022ee">  0x080022EE:  </span>F880 1034    STRB.W     R1, [R0, #52]
+<span id="A080022f2">  0x080022F2:  </span>D0AC         BEQ        .L18                     ; 0x0800224E
+<span id="A080022f4">  0x080022F4:  </span>4790         BLX        R2
+<span id="A080022f6">  0x080022F6:  </span>E7A9         B          .L17                     ; 0x0800224C
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .text.SPI_DMAAbortOnError from charger_lto.o, size=20, align=2">Section .text.SPI_DMAAbortOnError from charger_lto.o, size=20, align=2</h2>
+<pre>
+<br/><span id="
+xÑ
+D">SPI_DMAAbortOnError:</span>
+<span id="A080022f8">  0x080022F8:  </span>6B80         LDR        R0, [R0, #56]
+<span id="A080022fa">  0x080022FA:  </span>2100         MOVS       R1, #0
+<span id="A080022fc">  0x080022FC:  </span>F8A0 106A    STRH.W     R1, [R0, #106]
+<span id="A08002300">  0x08002300:  </span>F8A0 1062    STRH.W     R1, [R0, #98]
+<span id="A08002304">  0x08002304:  </span>2101         MOVS       R1, #1
+<span id="A08002306">  0x08002306:  </span>F880 1081    STRB.W     R1, [R0, #129]
+<span id="A0800230a">  0x0800230A:  </span>4770         BX         LR
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .init.Reset_Handler from Cortex_M_Startup.o, size=24, align=2">Section .init.Reset_Handler from Cortex_M_Startup.o, size=24, align=2</h2>
 <pre>
-<br/><span id="»
-#">Reset_Handler:</span>
-<span id="Y
-#">reset_handler:</span>
-<span id="A08000b96">  0x08000B96:  </span>F7FF FDB6    BL         <a href="#`íu²i">SystemInit</a>               ; 0x08000706
-<span id="A08000b9a">  0x08000B9A:  </span>F64E 5088    MOVW       R0, #0xED88
-<span id="A08000b9e">  0x08000B9E:  </span>F2CE 0000    MOVT       R0, #0xE000
-<span id="A08000ba2">  0x08000BA2:  </span>6801         LDR        R1, [R0]
-<span id="A08000ba4">  0x08000BA4:  </span>F451 0170    ORRS       R1, R1, #0xF00000
-<span id="A08000ba8">  0x08000BA8:  </span>6001         STR        R1, [R0]
-<span id="A08000baa">  0x08000BAA:  </span>F7FF FC15    BL         <a href="#`íu²i">_start</a>                   ; 0x080003D8
+<br/><span id="¤Ò
+D">Reset_Handler:</span>
+<span id="9¥Ò
+D">reset_handler:</span>
+<span id="A0800230c">  0x0800230C:  </span>F7FF FB4B    BL         <a href="# ô]oÛ">SystemInit</a>               ; 0x080019A6
+<span id="A08002310">  0x08002310:  </span>F64E 5088    MOVW       R0, #0xED88
+<span id="A08002314">  0x08002314:  </span>F2CE 0000    MOVT       R0, #0xE000
+<span id="A08002318">  0x08002318:  </span>6801         LDR        R1, [R0]
+<span id="A0800231a">  0x0800231A:  </span>F451 0170    ORRS       R1, R1, #0xF00000
+<span id="A0800231e">  0x0800231E:  </span>6001         STR        R1, [R0]
+<span id="A08002320">  0x08002320:  </span>F7FE FC74    BL         <a href="# ô]oÛ">_start</a>                   ; 0x08000C0C
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .rodata.D1CorePrescTable from charger_lto.o, size=16, align=1">Section .rodata.D1CorePrescTable from charger_lto.o, size=16, align=1</h2>
 <pre>
-<br/><span id="ø	#">D1CorePrescTable:</span>
-<span id="A08000bae">  0x08000BAE:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000baf">  0x08000BAF:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bb0">  0x08000BB0:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bb1">  0x08000BB1:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bb2">  0x08000BB2:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bb3">  0x08000BB3:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bb4">  0x08000BB4:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bb5">  0x08000BB5:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bb6">  0x08000BB6:  </span>01           DC.B       0x01                     ; '\x01'
-<span id="A08000bb7">  0x08000BB7:  </span>02           DC.B       0x02                     ; '\x02'
-<span id="A08000bb8">  0x08000BB8:  </span>03           DC.B       0x03                     ; '\x03'
-<span id="A08000bb9">  0x08000BB9:  </span>04           DC.B       0x04                     ; '\x04'
-<span id="A08000bba">  0x08000BBA:  </span>06           DC.B       0x06                     ; '\x06'
-<span id="A08000bbb">  0x08000BBB:  </span>07           DC.B       0x07                     ; '\x07'
-<span id="A08000bbc">  0x08000BBC:  </span>08           DC.B       0x08                     ; '\b'
-<span id="A08000bbd">  0x08000BBD:  </span>09           DC.B       0x09                     ; '\t'
+<br/><span id="bzÑ
+D">D1CorePrescTable:</span>
+<span id="A08002324">  0x08002324:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002325">  0x08002325:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002326">  0x08002326:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002327">  0x08002327:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002328">  0x08002328:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002329">  0x08002329:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800232a">  0x0800232A:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800232b">  0x0800232B:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800232c">  0x0800232C:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A0800232d">  0x0800232D:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A0800232e">  0x0800232E:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A0800232f">  0x0800232F:  </span>04           DC.B       0x04                     ; '\x04'
+<span id="A08002330">  0x08002330:  </span>06           DC.B       0x06                     ; '\x06'
+<span id="A08002331">  0x08002331:  </span>07           DC.B       0x07                     ; '\x07'
+<span id="A08002332">  0x08002332:  </span>08           DC.B       0x08                     ; '\b'
+<span id="A08002333">  0x08002333:  </span>09           DC.B       0x09                     ; '\t'
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .segger.init.table from [ Linker created ], size=32, align=4">Section .segger.init.table from [ Linker created ], size=32, align=4</h2>
 <pre>
-<span id="A08000bc0">  0x08000BC0:  </span>08000BE5     DC.W       <a href="#púÙ#">__SEGGER_init_zero</a>
-<span id="A08000bc4">  0x08000BC4:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bc5">  0x08000BC5:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bc6">  0x08000BC6:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bc7">  0x08000BC7:  </span>30           DC.B       0x30                     ; '0'
-<span id="A08000bc8">  0x08000BC8:  </span>29           DC.B       0x29                     ; ')'
-<span id="A08000bc9">  0x08000BC9:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bca">  0x08000BCA:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bcb">  0x08000BCB:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bcc">  0x08000BCC:  </span>08000BF7     DC.W       <a href="#°üÙ#">__SEGGER_init_copy</a>
-<span id="A08000bd0">  0x08000BD0:  </span>2C           DC.B       0x2C                     ; ','
-<span id="A08000bd1">  0x08000BD1:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bd2">  0x08000BD2:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bd3">  0x08000BD3:  </span>30           DC.B       0x30                     ; '0'
-<span id="A08000bd4">  0x08000BD4:  </span>08000BE0     DC.W       0x08000BE0               ; R_ARM_ABS32
-<span id="A08000bd8">  0x08000BD8:  </span>04           DC.B       0x04                     ; '\x04'
-<span id="A08000bd9">  0x08000BD9:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bda">  0x08000BDA:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bdb">  0x08000BDB:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000bdc">  0x08000BDC:  </span>080003E3     DC.W       <a href="#àüÙ#">__SEGGER_init_done</a>
+<span id="A08002334">  0x08002334:  </span>08002359     DC.W       <a href="# ^­D">__SEGGER_init_zero</a>
+<span id="A08002338">  0x08002338:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002339">  0x08002339:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800233a">  0x0800233A:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800233b">  0x0800233B:  </span>30           DC.B       0x30                     ; '0'
+<span id="A0800233c">  0x0800233C:  </span>29           DC.B       0x29                     ; ')'
+<span id="A0800233d">  0x0800233D:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A0800233e">  0x0800233E:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800233f">  0x0800233F:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002340">  0x08002340:  </span>0800236B     DC.W       <a href="# ^­D">__SEGGER_init_copy</a>
+<span id="A08002344">  0x08002344:  </span>2C           DC.B       0x2C                     ; ','
+<span id="A08002345">  0x08002345:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A08002346">  0x08002346:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002347">  0x08002347:  </span>30           DC.B       0x30                     ; '0'
+<span id="A08002348">  0x08002348:  </span>08002354     DC.W       0x08002354               ; R_ARM_ABS32
+<span id="A0800234c">  0x0800234C:  </span>04           DC.B       0x04                     ; '\x04'
+<span id="A0800234d">  0x0800234D:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800234e">  0x0800234E:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A0800234f">  0x0800234F:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002350">  0x08002350:  </span>08000C17     DC.W       <a href="# ^­D">__SEGGER_init_done</a>
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .segger.init.data from [ Linker created ], size=4, align=4">Section .segger.init.data from [ Linker created ], size=4, align=4</h2>
 <pre>
-<span id="A08000be0">  0x08000BE0:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A08000be1">  0x08000BE1:  </span>90           DC.B       0x90                     ; '\x90'
-<span id="A08000be2">  0x08000BE2:  </span>D0           DC.B       0xD0                     ; '\xD0'
-<span id="A08000be3">  0x08000BE3:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A08002354">  0x08002354:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A08002355">  0x08002355:  </span>90           DC.B       0x90                     ; '\x90'
+<span id="A08002356">  0x08002356:  </span>D0           DC.B       0xD0                     ; '\xD0'
+<span id="A08002357">  0x08002357:  </span>03           DC.B       0x03                     ; '\x03'
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .segger.init.__SEGGER_init_zero from SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=18, align=2">Section .segger.init.__SEGGER_init_zero from SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=18, align=2</h2>
 <pre>
-<br/><span id="b¾ #">__SEGGER_init_zero:</span>
-<span id="A08000be4">  0x08000BE4:  </span>6820         LDR        R0, [R4]
-<span id="A08000be6">  0x08000BE6:  </span>6861         LDR        R1, [R4, #4]
-<span id="A08000be8">  0x08000BE8:  </span>3408         ADDS       R4, #8
-<span id="A08000bea">  0x08000BEA:  </span>2200         MOVS       R2, #0
-<span id="A08000bec">  0x08000BEC:  </span>E000         B          .L2                      ; 0x08000BF0
+<br/><span id="R½
+D">__SEGGER_init_zero:</span>
+<span id="A08002358">  0x08002358:  </span>6820         LDR        R0, [R4]
+<span id="A0800235a">  0x0800235A:  </span>6861         LDR        R1, [R4, #4]
+<span id="A0800235c">  0x0800235C:  </span>3408         ADDS       R4, #8
+<span id="A0800235e">  0x0800235E:  </span>2200         MOVS       R2, #0
+<span id="A08002360">  0x08002360:  </span>E000         B          .L2                      ; 0x08002364
 <br/>.L1:
-<span id="A08000bee">  0x08000BEE:  </span>5442         STRB       R2, [R0, R1]
+<span id="A08002362">  0x08002362:  </span>5442         STRB       R2, [R0, R1]
 <br/>.L2:
-<span id="A08000bf0">  0x08000BF0:  </span>3901         SUBS       R1, #1
-<span id="A08000bf2">  0x08000BF2:  </span>D5FC         BPL        .L1                      ; 0x08000BEE
-<span id="A08000bf4">  0x08000BF4:  </span>4770         BX         LR
+<span id="A08002364">  0x08002364:  </span>3901         SUBS       R1, #1
+<span id="A08002366">  0x08002366:  </span>D5FC         BPL        .L1                      ; 0x08002362
+<span id="A08002368">  0x08002368:  </span>4770         BX         LR
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .segger.init.__SEGGER_init_copy from SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=20, align=2">Section .segger.init.__SEGGER_init_copy from SEGGER_crtinit.o (SEGGER_crtinit_v7em_fpv5_d16_hard_t_le_eabi_balanced.a), size=20, align=2</h2>
 <pre>
-<br/><span id="u¾ #">__SEGGER_init_copy:</span>
-<span id="A08000bf6">  0x08000BF6:  </span>6820         LDR        R0, [R4]
-<span id="A08000bf8">  0x08000BF8:  </span>6861         LDR        R1, [R4, #4]
-<span id="A08000bfa">  0x08000BFA:  </span>68A2         LDR        R2, [R4, #8]
-<span id="A08000bfc">  0x08000BFC:  </span>340C         ADDS       R4, #12
-<span id="A08000bfe">  0x08000BFE:  </span>E001         B          .L2                      ; 0x08000C04
+<br/><span id="e½
+D">__SEGGER_init_copy:</span>
+<span id="A0800236a">  0x0800236A:  </span>6820         LDR        R0, [R4]
+<span id="A0800236c">  0x0800236C:  </span>6861         LDR        R1, [R4, #4]
+<span id="A0800236e">  0x0800236E:  </span>68A2         LDR        R2, [R4, #8]
+<span id="A08002370">  0x08002370:  </span>340C         ADDS       R4, #12
+<span id="A08002372">  0x08002372:  </span>E001         B          .L2                      ; 0x08002378
 <br/>.L1:
-<span id="A08000c00">  0x08000C00:  </span>5C8B         LDRB       R3, [R1, R2]
-<span id="A08000c02">  0x08000C02:  </span>5483         STRB       R3, [R0, R2]
+<span id="A08002374">  0x08002374:  </span>5C8B         LDRB       R3, [R1, R2]
+<span id="A08002376">  0x08002376:  </span>5483         STRB       R3, [R0, R2]
 <br/>.L2:
-<span id="A08000c04">  0x08000C04:  </span>3A01         SUBS       R2, #1
-<span id="A08000c06">  0x08000C06:  </span>D5FB         BPL        .L1                      ; 0x08000C00
-<span id="A08000c08">  0x08000C08:  </span>4770         BX         LR
+<span id="A08002378">  0x08002378:  </span>3A01         SUBS       R2, #1
+<span id="A0800237a">  0x0800237A:  </span>D5FB         BPL        .L1                      ; 0x08002374
+<span id="A0800237c">  0x0800237C:  </span>4770         BX         LR
 </pre>
-<h2 id="ABSOLUTE LISTING_Section .bss.hrtc from charger_lto.o, size=36, align=4">Section .bss.hrtc from charger_lto.o, size=36, align=4</h2>
+<h2 id="ABSOLUTE LISTING_Section .bss.hspi4 from charger_lto.o, size=136, align=4">Section .bss.hspi4 from charger_lto.o, size=136, align=4</h2>
 <pre>
-<br/><span id="	#">hrtc:</span>
+<br/><span id="y{Ñ
+D">hspi4:</span>
 <span id="A30000000">  0x30000000:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A30000001">  0x30000001:  </span>00           DC.B       0x00                     ; '\0'
@@ -9011,41 +12243,310 @@
 <span id="A30000012">  0x30000012:  </span>D0           DC.B       0xD0                     ; '\xD0'
 <span id="A30000013">  0x30000013:  </span>03           DC.B       0x03                     ; '\x03'
-<span id="A30000014">  0x30000014:  </span>FF           DC.B       0xFF                     ; '\xFF'
-<span id="A30000015">  0x30000015:  </span>FF           DC.B       0xFF                     ; '\xFF'
-<span id="A30000016">  0x30000016:  </span>FF           DC.B       0xFF                     ; '\xFF'
-<span id="A30000017">  0x30000017:  </span>FF           DC.B       0xFF                     ; '\xFF'
-<span id="A30000018">  0x30000018:  </span>D6           DC.B       0xD6                     ; '\xD6'
-<span id="A30000019">  0x30000019:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A30000014">  0x30000014:  </span>0E           DC.B       0x0E                     ; '\x0E'
+<span id="A30000015">  0x30000015:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000016">  0x30000016:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000017">  0x30000017:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000018">  0x30000018:  </span>1C           DC.B       0x1C                     ; '\x1C'
+<span id="A30000019">  0x30000019:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A3000001a">  0x3000001A:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A3000001b">  0x3000001B:  </span>08           DC.B       0x08                     ; '\b'
-<span id="A3000001c">  0x3000001C:  </span>0C           DC.B       0x0C                     ; '\x0C'
+<span id="A3000001b">  0x3000001B:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000001c">  0x3000001C:  </span>02           DC.B       0x02                     ; '\x02'
 <span id="A3000001d">  0x3000001D:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A3000001e">  0x3000001E:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A3000001f">  0x3000001F:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A30000020">  0x30000020:  </span>1A           DC.B       0x1A                     ; '\x1A'
+<span id="A3000001e">  0x3000001E:  </span>31           DC.B       0x31                     ; '1'
+<span id="A3000001f">  0x3000001F:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000020">  0x30000020:  </span>1C           DC.B       0x1C                     ; '\x1C'
 <span id="A30000021">  0x30000021:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A30000022">  0x30000022:  </span>00           DC.B       0x00                     ; '\0'
 <span id="A30000023">  0x30000023:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000024">  0x30000024:  </span>58           DC.B       0x58                     ; 'X'
+<span id="A30000025">  0x30000025:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000026">  0x30000026:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000027">  0x30000027:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000028">  0x30000028:  </span>38           DC.B       0x38                     ; '8'
+<span id="A30000029">  0x30000029:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000002a">  0x3000002A:  </span>31           DC.B       0x31                     ; '1'
+<span id="A3000002b">  0x3000002B:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A3000002c">  0x3000002C:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A3000002d">  0x3000002D:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A3000002e">  0x3000002E:  </span>30           DC.B       0x30                     ; '0'
+<span id="A3000002f">  0x3000002F:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000030">  0x30000030:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A30000031">  0x30000031:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000032">  0x30000032:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A30000033">  0x30000033:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A30000034">  0x30000034:  </span>30           DC.B       0x30                     ; '0'
+<span id="A30000035">  0x30000035:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000036">  0x30000036:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A30000037">  0x30000037:  </span>04           DC.B       0x04                     ; '\x04'
+<span id="A30000038">  0x30000038:  </span>4F           DC.B       0x4F                     ; 'O'
+<span id="A30000039">  0x30000039:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A3000003a">  0x3000003A:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A3000003b">  0x3000003B:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A3000003c">  0x3000003C:  </span>10           DC.B       0x10                     ; '\x10'
+<span id="A3000003d">  0x3000003D:  </span>87           DC.B       0x87                     ; '\x87'
+<span id="A3000003e">  0x3000003E:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A3000003f">  0x3000003F:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A30000040">  0x30000040:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A30000041">  0x30000041:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A30000042">  0x30000042:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A30000043">  0x30000043:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A30000044">  0x30000044:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A30000045">  0x30000045:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A30000046">  0x30000046:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000047">  0x30000047:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000048">  0x30000048:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A30000049">  0x30000049:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A3000004a">  0x3000004A:  </span>30           DC.B       0x30                     ; '0'
+<span id="A3000004b">  0x3000004B:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A3000004c">  0x3000004C:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A3000004d">  0x3000004D:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A3000004e">  0x3000004E:  </span>30           DC.B       0x30                     ; '0'
+<span id="A3000004f">  0x3000004F:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000050">  0x30000050:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A30000051">  0x30000051:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000052">  0x30000052:  </span>31           DC.B       0x31                     ; '1'
+<span id="A30000053">  0x30000053:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000054">  0x30000054:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A30000055">  0x30000055:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000056">  0x30000056:  </span>31           DC.B       0x31                     ; '1'
+<span id="A30000057">  0x30000057:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000058">  0x30000058:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A30000059">  0x30000059:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A3000005a">  0x3000005A:  </span>30           DC.B       0x30                     ; '0'
+<span id="A3000005b">  0x3000005B:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A3000005c">  0x3000005C:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A3000005d">  0x3000005D:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A3000005e">  0x3000005E:  </span>30           DC.B       0x30                     ; '0'
+<span id="A3000005f">  0x3000005F:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000060">  0x30000060:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A30000061">  0x30000061:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000062">  0x30000062:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000063">  0x30000063:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000064">  0x30000064:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000065">  0x30000065:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000066">  0x30000066:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000067">  0x30000067:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000068">  0x30000068:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000069">  0x30000069:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000006a">  0x3000006A:  </span>90           DC.B       0x90                     ; '\x90'
+<span id="A3000006b">  0x3000006B:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000006c">  0x3000006C:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000006d">  0x3000006D:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000006e">  0x3000006E:  </span>9A           DC.B       0x9A                     ; '\x9A'
+<span id="A3000006f">  0x3000006F:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000070">  0x30000070:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000071">  0x30000071:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000072">  0x30000072:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000073">  0x30000073:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000074">  0x30000074:  </span>51           DC.B       0x51                     ; 'Q'
+<span id="A30000075">  0x30000075:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000076">  0x30000076:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000077">  0x30000077:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000078">  0x30000078:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000079">  0x30000079:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000007a">  0x3000007A:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000007b">  0x3000007B:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000007c">  0x3000007C:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000007d">  0x3000007D:  </span>94           DC.B       0x94                     ; '\x94'
+<span id="A3000007e">  0x3000007E:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000007f">  0x3000007F:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000080">  0x30000080:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000081">  0x30000081:  </span>C0           DC.B       0xC0                     ; '\xC0'
+<span id="A30000082">  0x30000082:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000083">  0x30000083:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000084">  0x30000084:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000085">  0x30000085:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000086">  0x30000086:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000087">  0x30000087:  </span>50           DC.B       0x50                     ; 'P'
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .bss.hdma_spi4_tx from charger_lto.o, size=120, align=4">Section .bss.hdma_spi4_tx from charger_lto.o, size=120, align=4</h2>
+<pre>
+<br/><span id="MwÑ
+D">hdma_spi4_tx:</span>
+<span id="A30000088">  0x30000088:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000089">  0x30000089:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000008a">  0x3000008A:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000008b">  0x3000008B:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000008c">  0x3000008C:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000008d">  0x3000008D:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000008e">  0x3000008E:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000008f">  0x3000008F:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000090">  0x30000090:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000091">  0x30000091:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A30000092">  0x30000092:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A30000093">  0x30000093:  </span>04           DC.B       0x04                     ; '\x04'
+<span id="A30000094">  0x30000094:  </span>06           DC.B       0x06                     ; '\x06'
+<span id="A30000095">  0x30000095:  </span>07           DC.B       0x07                     ; '\x07'
+<span id="A30000096">  0x30000096:  </span>08           DC.B       0x08                     ; '\b'
+<span id="A30000097">  0x30000097:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A30000098">  0x30000098:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000099">  0x30000099:  </span>90           DC.B       0x90                     ; '\x90'
+<span id="A3000009a">  0x3000009A:  </span>D0           DC.B       0xD0                     ; '\xD0'
+<span id="A3000009b">  0x3000009B:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A3000009c">  0x3000009C:  </span>0E           DC.B       0x0E                     ; '\x0E'
+<span id="A3000009d">  0x3000009D:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000009e">  0x3000009E:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000009f">  0x3000009F:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000a0">  0x300000A0:  </span>1C           DC.B       0x1C                     ; '\x1C'
+<span id="A300000a1">  0x300000A1:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000a2">  0x300000A2:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000a3">  0x300000A3:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000a4">  0x300000A4:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A300000a5">  0x300000A5:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000a6">  0x300000A6:  </span>31           DC.B       0x31                     ; '1'
+<span id="A300000a7">  0x300000A7:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000a8">  0x300000A8:  </span>1C           DC.B       0x1C                     ; '\x1C'
+<span id="A300000a9">  0x300000A9:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000aa">  0x300000AA:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000ab">  0x300000AB:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000ac">  0x300000AC:  </span>58           DC.B       0x58                     ; 'X'
+<span id="A300000ad">  0x300000AD:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000ae">  0x300000AE:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000af">  0x300000AF:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000b0">  0x300000B0:  </span>38           DC.B       0x38                     ; '8'
+<span id="A300000b1">  0x300000B1:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000b2">  0x300000B2:  </span>31           DC.B       0x31                     ; '1'
+<span id="A300000b3">  0x300000B3:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000b4">  0x300000B4:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000b5">  0x300000B5:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000b6">  0x300000B6:  </span>30           DC.B       0x30                     ; '0'
+<span id="A300000b7">  0x300000B7:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000b8">  0x300000B8:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000b9">  0x300000B9:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000ba">  0x300000BA:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000bb">  0x300000BB:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A300000bc">  0x300000BC:  </span>30           DC.B       0x30                     ; '0'
+<span id="A300000bd">  0x300000BD:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000be">  0x300000BE:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000bf">  0x300000BF:  </span>04           DC.B       0x04                     ; '\x04'
+<span id="A300000c0">  0x300000C0:  </span>4F           DC.B       0x4F                     ; 'O'
+<span id="A300000c1">  0x300000C1:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000c2">  0x300000C2:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000c3">  0x300000C3:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000c4">  0x300000C4:  </span>10           DC.B       0x10                     ; '\x10'
+<span id="A300000c5">  0x300000C5:  </span>87           DC.B       0x87                     ; '\x87'
+<span id="A300000c6">  0x300000C6:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A300000c7">  0x300000C7:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A300000c8">  0x300000C8:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A300000c9">  0x300000C9:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A300000ca">  0x300000CA:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A300000cb">  0x300000CB:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A300000cc">  0x300000CC:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A300000cd">  0x300000CD:  </span>FF           DC.B       0xFF                     ; '\xFF'
+<span id="A300000ce">  0x300000CE:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000cf">  0x300000CF:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000d0">  0x300000D0:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000d1">  0x300000D1:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000d2">  0x300000D2:  </span>30           DC.B       0x30                     ; '0'
+<span id="A300000d3">  0x300000D3:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000d4">  0x300000D4:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000d5">  0x300000D5:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000d6">  0x300000D6:  </span>30           DC.B       0x30                     ; '0'
+<span id="A300000d7">  0x300000D7:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000d8">  0x300000D8:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000d9">  0x300000D9:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000da">  0x300000DA:  </span>31           DC.B       0x31                     ; '1'
+<span id="A300000db">  0x300000DB:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000dc">  0x300000DC:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000dd">  0x300000DD:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000de">  0x300000DE:  </span>31           DC.B       0x31                     ; '1'
+<span id="A300000df">  0x300000DF:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000e0">  0x300000E0:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000e1">  0x300000E1:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000e2">  0x300000E2:  </span>30           DC.B       0x30                     ; '0'
+<span id="A300000e3">  0x300000E3:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000e4">  0x300000E4:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000e5">  0x300000E5:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000e6">  0x300000E6:  </span>30           DC.B       0x30                     ; '0'
+<span id="A300000e7">  0x300000E7:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A300000e8">  0x300000E8:  </span>93           DC.B       0x93                     ; '\x93'
+<span id="A300000e9">  0x300000E9:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000ea">  0x300000EA:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000eb">  0x300000EB:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000ec">  0x300000EC:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000ed">  0x300000ED:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000ee">  0x300000EE:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000ef">  0x300000EF:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000f0">  0x300000F0:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000f1">  0x300000F1:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000f2">  0x300000F2:  </span>90           DC.B       0x90                     ; '\x90'
+<span id="A300000f3">  0x300000F3:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000f4">  0x300000F4:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000f5">  0x300000F5:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000f6">  0x300000F6:  </span>9A           DC.B       0x9A                     ; '\x9A'
+<span id="A300000f7">  0x300000F7:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000f8">  0x300000F8:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000f9">  0x300000F9:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000fa">  0x300000FA:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A300000fb">  0x300000FB:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000fc">  0x300000FC:  </span>51           DC.B       0x51                     ; 'Q'
+<span id="A300000fd">  0x300000FD:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000fe">  0x300000FE:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A300000ff">  0x300000FF:  </span>00           DC.B       0x00                     ; '\0'
+</pre>
+<h2 id="ABSOLUTE LISTING_Section .bss.hrtc from charger_lto.o, size=36, align=4">Section .bss.hrtc from charger_lto.o, size=36, align=4</h2>
+<pre>
+<br/><span id="xzÑ
+D">hrtc:</span>
+<span id="A30000100">  0x30000100:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000101">  0x30000101:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000102">  0x30000102:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000103">  0x30000103:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000104">  0x30000104:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000105">  0x30000105:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000106">  0x30000106:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000107">  0x30000107:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000108">  0x30000108:  </span>01           DC.B       0x01                     ; '\x01'
+<span id="A30000109">  0x30000109:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A3000010a">  0x3000010A:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A3000010b">  0x3000010B:  </span>04           DC.B       0x04                     ; '\x04'
+<span id="A3000010c">  0x3000010C:  </span>06           DC.B       0x06                     ; '\x06'
+<span id="A3000010d">  0x3000010D:  </span>07           DC.B       0x07                     ; '\x07'
+<span id="A3000010e">  0x3000010E:  </span>08           DC.B       0x08                     ; '\b'
+<span id="A3000010f">  0x3000010F:  </span>09           DC.B       0x09                     ; '\t'
+<span id="A30000110">  0x30000110:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000111">  0x30000111:  </span>90           DC.B       0x90                     ; '\x90'
+<span id="A30000112">  0x30000112:  </span>D0           DC.B       0xD0                     ; '\xD0'
+<span id="A30000113">  0x30000113:  </span>03           DC.B       0x03                     ; '\x03'
+<span id="A30000114">  0x30000114:  </span>0E           DC.B       0x0E                     ; '\x0E'
+<span id="A30000115">  0x30000115:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000116">  0x30000116:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000117">  0x30000117:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000118">  0x30000118:  </span>1C           DC.B       0x1C                     ; '\x1C'
+<span id="A30000119">  0x30000119:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000011a">  0x3000011A:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000011b">  0x3000011B:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000011c">  0x3000011C:  </span>02           DC.B       0x02                     ; '\x02'
+<span id="A3000011d">  0x3000011D:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000011e">  0x3000011E:  </span>31           DC.B       0x31                     ; '1'
+<span id="A3000011f">  0x3000011F:  </span>9F           DC.B       0x9F                     ; '\x9F'
+<span id="A30000120">  0x30000120:  </span>1C           DC.B       0x1C                     ; '\x1C'
+<span id="A30000121">  0x30000121:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000122">  0x30000122:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000123">  0x30000123:  </span>00           DC.B       0x00                     ; '\0'
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .bss.uwTick from charger_lto.o, size=4, align=4">Section .bss.uwTick from charger_lto.o, size=4, align=4</h2>
 <pre>
-<br/><span id="²	#">uwTick:</span>
-<span id="A30000024">  0x30000024:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A30000025">  0x30000025:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A30000026">  0x30000026:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A30000027">  0x30000027:  </span>00           DC.B       0x00                     ; '\0'
+<br/><span id="ÀyÑ
+D">uwTick:</span>
+<span id="A30000124">  0x30000124:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000125">  0x30000125:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000126">  0x30000126:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A30000127">  0x30000127:  </span>00           DC.B       0x00                     ; '\0'
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .bss.uwTickPrio from charger_lto.o, size=1, align=4">Section .bss.uwTickPrio from charger_lto.o, size=1, align=4</h2>
 <pre>
-<br/><span id="m	#">uwTickPrio:</span>
-<span id="A30000028">  0x30000028:  </span>00           DC.B       0x00                     ; '\0'
+<br/><span id="{yÑ
+D">uwTickPrio:</span>
+<span id="A30000128">  0x30000128:  </span>00           DC.B       0x00                     ; '\0'
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .data.SystemCoreClock from charger_lto.o, size=4, align=4">Section .data.SystemCoreClock from charger_lto.o, size=4, align=4</h2>
 <pre>
-<br/><span id="	#">SystemCoreClock:</span>
-<span id="A3000002c">  0x3000002C:  </span>00           DC.B       0x00                     ; '\0'
-<span id="A3000002d">  0x3000002D:  </span>90           DC.B       0x90                     ; '\x90'
-<span id="A3000002e">  0x3000002E:  </span>D0           DC.B       0xD0                     ; '\xD0'
-<span id="A3000002f">  0x3000002F:  </span>03           DC.B       0x03                     ; '\x03'
+<br/><span id="«yÑ
+D">SystemCoreClock:</span>
+<span id="A3000012c">  0x3000012C:  </span>00           DC.B       0x00                     ; '\0'
+<span id="A3000012d">  0x3000012D:  </span>90           DC.B       0x90                     ; '\x90'
+<span id="A3000012e">  0x3000012E:  </span>D0           DC.B       0xD0                     ; '\xD0'
+<span id="A3000012f">  0x3000012F:  </span>03           DC.B       0x03                     ; '\x03'
 </pre>
 <h2 id="ABSOLUTE LISTING_Section .bss.block.stack from [ Linker created ], size=8192, align=8">Section .bss.block.stack from [ Linker created ], size=8192, align=8</h2>
@@ -9062,15 +12563,15 @@
   <tr>
     <td align="left"><code>Dedupe code</code></td>
-    <td align="right"><code>286</code></td>
+    <td align="right"><code>282</code></td>
   </tr>
   <tr>
     <td align="left"><code>Total:</code></td>
-    <td align="right"><code>286</code></td>
+    <td align="right"><code>282</code></td>
   </tr>
 <h1 id="LINK SUMMARY">LINK SUMMARY</h1>
 <h2 id="LINK SUMMARY_Memory breakdown">Memory breakdown</h2>
-  3 028 bytes read-only  code    + 
-     52 bytes read-only  data    =   3 080 bytes read-only (total)
-  8 237 bytes read-write data
+  9 034 bytes read-only  code    + 
+     52 bytes read-only  data    =   9 086 bytes read-only (total)
+  8 493 bytes read-write data
 <h2 id="LINK SUMMARY_Region summary">Region summary</h2>
 <table>
@@ -9087,6 +12588,6 @@
     <td align="left"><code>08000000-0807ffff</code></td>
     <td align="right"><code>524 288</code></td>
-    <td align="right"><code>3 080   0.59%</code></td>
-    <td align="right"><code>521 208  99.41%</code></td>
+    <td align="right"><code>9 086   1.73%</code></td>
+    <td align="right"><code>515 202  98.27%</code></td>
     <td align="right"><code>0   0.00%</code></td>
   </tr>
@@ -9095,6 +12596,6 @@
     <td align="left"><code>30000000-30007fff</code></td>
     <td align="right"><code>32 768</code></td>
-    <td align="right"><code>8 237  25.14%</code></td>
-    <td align="right"><code>24 528  74.85%</code></td>
+    <td align="right"><code>8 493  25.92%</code></td>
+    <td align="right"><code>24 272  74.07%</code></td>
     <td align="right"><code>3   0.01%</code></td>
   </tr>
Index: /ctrl/firmware/Main/SES/charger.emProject
===================================================================
--- /ctrl/firmware/Main/SES/charger.emProject	(revision 44)
+++ /ctrl/firmware/Main/SES/charger.emProject	(revision 45)
@@ -98,8 +98,11 @@
           <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rtc.h" />
           <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rtc_ex.h" />
+          <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_spi.h" />
         </folder>
         <folder Name="Src">
           <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c" />
           <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c" />
+          <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c" />
+          <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c" />
           <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c" />
           <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c" />
@@ -107,4 +110,5 @@
           <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c" />
           <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rtc.c" />
+          <file file_name="../CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c" />
         </folder>
       </folder>
