Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:35

0001 /**
0002   ******************************************************************************
0003   * @file    stm32h7xx_hal.h
0004   * @author  MCD Application Team
0005   * @brief   This file contains all the functions prototypes for the HAL
0006   *          module driver.
0007   ******************************************************************************
0008   * @attention
0009   *
0010   * Copyright (c) 2017 STMicroelectronics.
0011   * All rights reserved.
0012   *
0013   * This software is licensed under terms that can be found in the LICENSE file
0014   * in the root directory of this software component.
0015   * If no LICENSE file comes with this software, it is provided AS-IS.
0016   *
0017   ******************************************************************************
0018   */
0019 
0020 /* Define to prevent recursive inclusion -------------------------------------*/
0021 #ifndef STM32H7xx_HAL_H
0022 #define STM32H7xx_HAL_H
0023 
0024 #ifdef __cplusplus
0025  extern "C" {
0026 #endif
0027 
0028 /* Includes ------------------------------------------------------------------*/
0029 #include "stm32h7xx_hal_conf.h"
0030 
0031 /** @addtogroup STM32H7xx_HAL_Driver
0032   * @{
0033   */
0034 
0035 /** @addtogroup HAL
0036   * @{
0037   */
0038 
0039 /* Exported types ------------------------------------------------------------*/
0040 /** @defgroup HAL_TICK_FREQ Tick Frequency
0041   * @ingroup RTEMSBSPsARMSTM32H7
0042   * @{
0043   */
0044 typedef enum
0045 {
0046   HAL_TICK_FREQ_10HZ         = 100U,
0047   HAL_TICK_FREQ_100HZ        = 10U,
0048   HAL_TICK_FREQ_1KHZ         = 1U,
0049   HAL_TICK_FREQ_DEFAULT      = HAL_TICK_FREQ_1KHZ
0050 } HAL_TickFreqTypeDef;
0051 /**
0052   * @}
0053   */
0054 
0055 /* Exported constants --------------------------------------------------------*/
0056 /** @defgroup HAL_Exported_Constants HAL Exported Constants
0057   * @ingroup RTEMSBSPsARMSTM32H7
0058   * @{
0059   */
0060 /** @defgroup REV_ID device revision ID
0061   * @ingroup RTEMSBSPsARMSTM32H7
0062   * @{
0063   */
0064 #define REV_ID_Y ((uint32_t)0x1003)  /*!< STM32H7 rev.Y */
0065 #define REV_ID_B ((uint32_t)0x2000)  /*!< STM32H7 rev.B */
0066 #define REV_ID_X ((uint32_t)0x2001)  /*!< STM32H7 rev.X */
0067 #define REV_ID_V ((uint32_t)0x2003)  /*!< STM32H7 rev.V */
0068 
0069 /**
0070   * @}
0071   */
0072   
0073 /** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants
0074   * @ingroup RTEMSBSPsARMSTM32H7
0075   * @{
0076   */
0077 
0078 /** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale
0079   * @ingroup RTEMSBSPsARMSTM32H7
0080   * @{
0081   */
0082 #define SYSCFG_VREFBUF_VOLTAGE_SCALE0   VREFBUF_CSR_VRS_OUT1   /*!< Voltage reference scale 0 (VREF_OUT1) */
0083 #define SYSCFG_VREFBUF_VOLTAGE_SCALE1   VREFBUF_CSR_VRS_OUT2   /*!< Voltage reference scale 1 (VREF_OUT2) */
0084 #define SYSCFG_VREFBUF_VOLTAGE_SCALE2   VREFBUF_CSR_VRS_OUT3   /*!< Voltage reference scale 2 (VREF_OUT3) */
0085 #define SYSCFG_VREFBUF_VOLTAGE_SCALE3   VREFBUF_CSR_VRS_OUT4   /*!< Voltage reference scale 3 (VREF_OUT4) */
0086 
0087 
0088 #define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(__SCALE__)  (((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE0) || \
0089                                                      ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE1) || \
0090                                                      ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE2) || \
0091                                                      ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE3))
0092 
0093 
0094 /**
0095   * @}
0096   */
0097 
0098 /** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance
0099   * @ingroup RTEMSBSPsARMSTM32H7
0100   * @{
0101   */
0102 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE  ((uint32_t)0x00000000) /*!< VREF_plus pin is internally connected to Voltage reference buffer output */
0103 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE   VREFBUF_CSR_HIZ        /*!< VREF_plus pin is high impedance */
0104 
0105 #define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(__VALUE__)  (((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE) || \
0106                                                       ((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE))
0107 
0108 #define IS_SYSCFG_VREFBUF_TRIMMING(__VALUE__)  (((__VALUE__) > 0UL) && ((__VALUE__) <= VREFBUF_CCR_TRIM))
0109 
0110 /**
0111   * @}
0112   */
0113 
0114 #if !defined(SYSCFG_PMCR_BOOSTEN)
0115 /** @defgroup SYSCFG_FastModePlus_GPIO Fast-mode Plus on GPIO
0116   * @ingroup RTEMSBSPsARMSTM32H7
0117   * @{
0118   */
0119 
0120 /** @brief  Fast-mode Plus driving capability on a specific GPIO
0121   */
0122 #define SYSCFG_FASTMODEPLUS_PB6        SYSCFG_PMCR_I2C_PB6_FMP  /*!< Enable Fast-mode Plus on PB6 */
0123 #define SYSCFG_FASTMODEPLUS_PB7        SYSCFG_PMCR_I2C_PB7_FMP  /*!< Enable Fast-mode Plus on PB7 */
0124 #define SYSCFG_FASTMODEPLUS_PB8        SYSCFG_PMCR_I2C_PB8_FMP  /*!< Enable Fast-mode Plus on PB8 */
0125 #define SYSCFG_FASTMODEPLUS_PB9        SYSCFG_PMCR_I2C_PB9_FMP  /*!< Enable Fast-mode Plus on PB9 */
0126 
0127 #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \
0128                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \
0129                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8) || \
0130                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9))
0131 
0132 /**
0133   * @}
0134   */
0135 #endif /* ! SYSCFG_PMCR_BOOSTEN */
0136 
0137 
0138 #if defined(SYSCFG_ADC2ALT_ADC2_ROUT0) || defined(SYSCFG_ADC2ALT_ADC2_ROUT1)
0139 /** @defgroup SYSCFG_Adc2_Alternate_Connection SYSCFG ADC2 Alternate Connection
0140   * @ingroup RTEMSBSPsARMSTM32H7
0141   * @{
0142   */
0143 
0144 /** @brief  Adc2 Alternate Connection on Vinp[16] and Vinp[17]
0145   */
0146 #define SYSCFG_ADC2_ROUT0_DAC1_1       ((uint32_t)0x00000000)      /*!< DAC1_out1 connected to ADC2 VINP[16] */
0147 #define SYSCFG_ADC2_ROUT0_VBAT4         SYSCFG_ADC2ALT_ADC2_ROUT0  /*!< VBAT/4 connected to ADC2 VINP[16] */
0148 #define SYSCFG_ADC2_ROUT1_DAC1_2        ((uint32_t)0x00000000)     /*!< DAC1_out2 connected to ADC2 VINP[17] */
0149 #define SYSCFG_ADC2_ROUT1_VREFINT       SYSCFG_ADC2ALT_ADC2_ROUT1  /*!< VREFINT connected to ADC2 VINP[17] */
0150 
0151 #define IS_SYSCFG_ADC2ALT_ROUT0(__VALUE__)  (((__VALUE__) == SYSCFG_ADC2_ROUT0_DAC1_1) || \
0152                                              ((__VALUE__) == SYSCFG_ADC2_ROUT0_VBAT4))
0153 #define IS_SYSCFG_ADC2ALT_ROUT1(__VALUE__)  (((__VALUE__) == SYSCFG_ADC2_ROUT1_DAC1_2) || \
0154                                              ((__VALUE__) == SYSCFG_ADC2_ROUT1_VREFINT))
0155 
0156 /**
0157   * @}
0158   */
0159 #endif /*SYSCFG_ADC2ALT_ADC2_ROUT0 || SYSCFG_ADC2ALT_ADC2_ROUT1*/
0160 
0161 
0162 /** @defgroup SYSCFG_Ethernet_Config  Ethernet Config
0163   * @ingroup RTEMSBSPsARMSTM32H7
0164   * @{
0165   */
0166 #define SYSCFG_ETH_MII                      ((uint32_t)0x00000000)  /*!< Select the Media Independent Interface */
0167 #define SYSCFG_ETH_RMII                     SYSCFG_PMCR_EPIS_SEL_2  /*!< Select the Reduced Media Independent Interface */
0168 
0169 #define IS_SYSCFG_ETHERNET_CONFIG(CONFIG) (((CONFIG) == SYSCFG_ETH_MII)        || \
0170                                           ((CONFIG) == SYSCFG_ETH_RMII))
0171 
0172 /**
0173   * @}
0174   */
0175 
0176 
0177 /** @defgroup SYSCFG_Analog_Switch_Config  Analog Switch Config
0178   * @ingroup RTEMSBSPsARMSTM32H7
0179   * @{
0180   */
0181 #define SYSCFG_SWITCH_PA0                       SYSCFG_PMCR_PA0SO  /*!< Select PA0 analog switch */
0182 #define SYSCFG_SWITCH_PA1                       SYSCFG_PMCR_PA1SO  /*!< Select PA1 analog switch */
0183 #define SYSCFG_SWITCH_PC2                       SYSCFG_PMCR_PC2SO  /*!< Select PC2 analog switch */
0184 #define SYSCFG_SWITCH_PC3                       SYSCFG_PMCR_PC3SO  /*!< Select PC3 analog switch */
0185 
0186 
0187 
0188 
0189 #define SYSCFG_SWITCH_PA0_OPEN                       SYSCFG_PMCR_PA0SO       /*!< PA0 analog switch opened */
0190 #define SYSCFG_SWITCH_PA0_CLOSE                      ((uint32_t)0x00000000)  /*!< PA0 analog switch closed */
0191 #define SYSCFG_SWITCH_PA1_OPEN                       SYSCFG_PMCR_PA1SO       /*!< PA1 analog switch opened */
0192 #define SYSCFG_SWITCH_PA1_CLOSE                      ((uint32_t)0x00000000)  /*!< PA1 analog switch closed*/
0193 #define SYSCFG_SWITCH_PC2_OPEN                       SYSCFG_PMCR_PC2SO       /*!< PC2 analog switch opened */
0194 #define SYSCFG_SWITCH_PC2_CLOSE                      ((uint32_t)0x00000000)  /*!< PC2 analog switch closed */
0195 #define SYSCFG_SWITCH_PC3_OPEN                       SYSCFG_PMCR_PC3SO       /*!< PC3 analog switch opened */
0196 #define SYSCFG_SWITCH_PC3_CLOSE                      ((uint32_t)0x00000000)  /*!< PC3 analog switch closed */
0197 
0198 /**
0199   * @}
0200   */
0201 
0202 #define IS_SYSCFG_ANALOG_SWITCH(SWITCH)    ((((SWITCH) & SYSCFG_SWITCH_PA0) == SYSCFG_SWITCH_PA0)|| \
0203                                            (((SWITCH) & SYSCFG_SWITCH_PA1) == SYSCFG_SWITCH_PA1) || \
0204                                            (((SWITCH) & SYSCFG_SWITCH_PC2) == SYSCFG_SWITCH_PC2) || \
0205                                            (((SWITCH) & SYSCFG_SWITCH_PC3) == SYSCFG_SWITCH_PC3))
0206 
0207 
0208 #define IS_SYSCFG_SWITCH_STATE(STATE)      ((((STATE) & SYSCFG_SWITCH_PA0_OPEN) == SYSCFG_SWITCH_PA0_OPEN)    || \
0209                                            (((STATE) & SYSCFG_SWITCH_PA0_CLOSE) == SYSCFG_SWITCH_PA0_CLOSE)   || \
0210                                            (((STATE) & SYSCFG_SWITCH_PA1_OPEN) == SYSCFG_SWITCH_PA1_OPEN)     || \
0211                                            (((STATE) & SYSCFG_SWITCH_PA1_CLOSE) == SYSCFG_SWITCH_PA1_CLOSE)   || \
0212                                            (((STATE) & SYSCFG_SWITCH_PC2_OPEN) == SYSCFG_SWITCH_PC2_OPEN)     || \
0213                                            (((STATE) & SYSCFG_SWITCH_PC2_CLOSE) == SYSCFG_SWITCH_PC2_CLOSE)   || \
0214                                            (((STATE) & SYSCFG_SWITCH_PC3_OPEN) == SYSCFG_SWITCH_PC3_OPEN)     || \
0215                                            (((STATE) & SYSCFG_SWITCH_PC3_CLOSE) == SYSCFG_SWITCH_PC3_CLOSE))
0216 
0217 
0218 /** @defgroup SYSCFG_Boot_Config  Boot Config
0219   * @ingroup RTEMSBSPsARMSTM32H7
0220   * @{
0221   */
0222 #define SYSCFG_BOOT_ADDR0                    ((uint32_t)0x00000000)  /*!< Select Boot address0 */
0223 #define SYSCFG_BOOT_ADDR1                    ((uint32_t)0x00000001)  /*!< Select Boot address1 */
0224 
0225 #define IS_SYSCFG_BOOT_REGISTER(REGISTER) (((REGISTER) == SYSCFG_BOOT_ADDR0)|| \
0226                                           ((REGISTER) == SYSCFG_BOOT_ADDR1))
0227 
0228 #define IS_SYSCFG_BOOT_ADDRESS(ADDRESS) ((ADDRESS) < PERIPH_BASE)
0229 
0230 /**
0231   * @}
0232   */
0233 
0234 
0235 /** @defgroup SYSCFG_IOCompenstionCell_Config  IOCompenstionCell Config
0236   * @ingroup RTEMSBSPsARMSTM32H7
0237   * @{
0238   */
0239 #define SYSCFG_CELL_CODE                    ((uint32_t)0x00000000)  /*!< Select Code from the cell */
0240 #define SYSCFG_REGISTER_CODE                 SYSCFG_CCCSR_CS        /*!< Code from the SYSCFG compensation cell code register */
0241 
0242 #define IS_SYSCFG_CODE_SELECT(SELECT) (((SELECT) == SYSCFG_CELL_CODE)|| \
0243                                         ((SELECT) == SYSCFG_REGISTER_CODE))
0244 
0245 #define IS_SYSCFG_CODE_CONFIG(CONFIG) ((CONFIG) < (0x10UL))
0246 
0247 /**
0248   * @}
0249   */
0250 
0251 /**
0252   * @}
0253   */
0254 
0255 
0256 /** @defgroup EXTI_Event_Input_Config  Event Input Config
0257   * @ingroup RTEMSBSPsARMSTM32H7
0258   * @{
0259   */
0260 
0261 #define EXTI_MODE_IT          ((uint32_t)0x00010000)
0262 #define EXTI_MODE_EVT         ((uint32_t)0x00020000)
0263 #define EXTI_RISING_EDGE      ((uint32_t)0x00100000)
0264 #define EXTI_FALLING_EDGE     ((uint32_t)0x00200000)
0265 
0266 #define IS_EXTI_EDGE_LINE(EDGE) (((EDGE) == EXTI_RISING_EDGE) || ((EDGE) == EXTI_FALLING_EDGE))
0267 #define IS_EXTI_MODE_LINE(MODE) (((MODE) == EXTI_MODE_IT) || ((MODE) == EXTI_MODE_EVT))
0268 
0269 #define EXTI_LINE0       ((uint32_t)0x00)  /*!< External interrupt LINE 0  */
0270 #define EXTI_LINE1       ((uint32_t)0x01)  /*!< External interrupt LINE 1  */
0271 #define EXTI_LINE2       ((uint32_t)0x02)  /*!< External interrupt LINE 2  */
0272 #define EXTI_LINE3       ((uint32_t)0x03)  /*!< External interrupt LINE 3  */
0273 #define EXTI_LINE4       ((uint32_t)0x04)  /*!< External interrupt LINE 4  */
0274 #define EXTI_LINE5       ((uint32_t)0x05)  /*!< External interrupt LINE 5  */
0275 #define EXTI_LINE6       ((uint32_t)0x06)  /*!< External interrupt LINE 6  */
0276 #define EXTI_LINE7       ((uint32_t)0x07)  /*!< External interrupt LINE 7  */
0277 #define EXTI_LINE8       ((uint32_t)0x08)  /*!< External interrupt LINE 8  */
0278 #define EXTI_LINE9       ((uint32_t)0x09)  /*!< External interrupt LINE 9  */
0279 #define EXTI_LINE10      ((uint32_t)0x0A)  /*!< External interrupt LINE 10 */
0280 #define EXTI_LINE11      ((uint32_t)0x0B)  /*!< External interrupt LINE 11 */
0281 #define EXTI_LINE12      ((uint32_t)0x0C)  /*!< External interrupt LINE 12 */
0282 #define EXTI_LINE13      ((uint32_t)0x0D)  /*!< External interrupt LINE 13 */
0283 #define EXTI_LINE14      ((uint32_t)0x0E)  /*!< External interrupt LINE 14 */
0284 #define EXTI_LINE15      ((uint32_t)0x0F)  /*!< External interrupt LINE 15 */
0285 #define EXTI_LINE16      ((uint32_t)0x10)
0286 #define EXTI_LINE17      ((uint32_t)0x11)
0287 #define EXTI_LINE18      ((uint32_t)0x12)
0288 #define EXTI_LINE19      ((uint32_t)0x13)
0289 #define EXTI_LINE20      ((uint32_t)0x14)
0290 #define EXTI_LINE21      ((uint32_t)0x15)
0291 #define EXTI_LINE22      ((uint32_t)0x16)
0292 #define EXTI_LINE23      ((uint32_t)0x17)
0293 #define EXTI_LINE24      ((uint32_t)0x18)
0294 #define EXTI_LINE25      ((uint32_t)0x19)
0295 #define EXTI_LINE26      ((uint32_t)0x1A)
0296 #define EXTI_LINE27      ((uint32_t)0x1B)
0297 #define EXTI_LINE28      ((uint32_t)0x1C)
0298 #define EXTI_LINE29      ((uint32_t)0x1D)
0299 #define EXTI_LINE30      ((uint32_t)0x1E)
0300 #define EXTI_LINE31      ((uint32_t)0x1F)
0301 #define EXTI_LINE32      ((uint32_t)0x20)
0302 #define EXTI_LINE33      ((uint32_t)0x21)
0303 #define EXTI_LINE34      ((uint32_t)0x22)
0304 #define EXTI_LINE35      ((uint32_t)0x23)
0305 #define EXTI_LINE36      ((uint32_t)0x24)
0306 #define EXTI_LINE37      ((uint32_t)0x25)
0307 #define EXTI_LINE38      ((uint32_t)0x26)
0308 #define EXTI_LINE39      ((uint32_t)0x27)
0309 
0310 #define EXTI_LINE40      ((uint32_t)0x28)
0311 #define EXTI_LINE41      ((uint32_t)0x29)
0312 #define EXTI_LINE42      ((uint32_t)0x2A)
0313 #define EXTI_LINE43      ((uint32_t)0x2B)
0314 #define EXTI_LINE44      ((uint32_t)0x2C)  /* Not available in all family lines */
0315 /* EXTI_LINE45 Reserved */
0316 #if defined(DUAL_CORE)
0317 #define EXTI_LINE46      ((uint32_t)0x2E)
0318 #else
0319 /* EXTI_LINE46 Reserved */
0320 #endif /* DUAL_CORE */
0321 #define EXTI_LINE47      ((uint32_t)0x2F)
0322 #define EXTI_LINE48      ((uint32_t)0x30)
0323 #define EXTI_LINE49      ((uint32_t)0x31)
0324 #define EXTI_LINE50      ((uint32_t)0x32)
0325 #define EXTI_LINE51      ((uint32_t)0x33)
0326 #define EXTI_LINE52      ((uint32_t)0x34)
0327 #define EXTI_LINE53      ((uint32_t)0x35)
0328 #define EXTI_LINE54      ((uint32_t)0x36)
0329 #define EXTI_LINE55      ((uint32_t)0x37)
0330 #define EXTI_LINE56      ((uint32_t)0x38)
0331 #define EXTI_LINE57      ((uint32_t)0x39)
0332 #define EXTI_LINE58      ((uint32_t)0x3A)
0333 #define EXTI_LINE59      ((uint32_t)0x3B)
0334 #define EXTI_LINE60      ((uint32_t)0x3C)
0335 #define EXTI_LINE61      ((uint32_t)0x3D)
0336 #define EXTI_LINE62      ((uint32_t)0x3E)
0337 #define EXTI_LINE63      ((uint32_t)0x3F)
0338 #define EXTI_LINE64      ((uint32_t)0x40)
0339 #define EXTI_LINE65      ((uint32_t)0x41)
0340 #define EXTI_LINE66      ((uint32_t)0x42)
0341 #define EXTI_LINE67      ((uint32_t)0x43)
0342 #define EXTI_LINE68      ((uint32_t)0x44)
0343 #define EXTI_LINE69      ((uint32_t)0x45)
0344 #define EXTI_LINE70      ((uint32_t)0x46)
0345 #define EXTI_LINE71      ((uint32_t)0x47)
0346 #define EXTI_LINE72      ((uint32_t)0x48)
0347 #define EXTI_LINE73      ((uint32_t)0x49)
0348 #define EXTI_LINE74      ((uint32_t)0x4A)
0349 #define EXTI_LINE75      ((uint32_t)0x4B)  /* Not available in all family lines */
0350 #define EXTI_LINE76      ((uint32_t)0x4C)  /* Not available in all family lines */
0351 #if defined(DUAL_CORE)
0352 #define EXTI_LINE77      ((uint32_t)0x4D)
0353 #define EXTI_LINE78      ((uint32_t)0x4E)
0354 #define EXTI_LINE79      ((uint32_t)0x4F)
0355 #define EXTI_LINE80      ((uint32_t)0x50)
0356 #else
0357 /* EXTI_LINE77 Reserved */
0358 /* EXTI_LINE78 Reserved */
0359 /* EXTI_LINE79 Reserved */
0360 /* EXTI_LINE80 Reserved */
0361 #endif /* DUAL_CORE */
0362 /* EXTI_LINE81   Reserved */
0363 #if defined(DUAL_CORE)
0364 #define EXTI_LINE82      ((uint32_t)0x52)
0365 #else
0366 /* EXTI_LINE82 Reserved */
0367 #endif /* DUAL_CORE */
0368 /* EXTI_LINE83   Reserved */
0369 #if defined(DUAL_CORE)
0370 #define EXTI_LINE84      ((uint32_t)0x54)
0371 #else
0372 /* EXTI_LINE84 Reserved */
0373 #endif /* DUAL_CORE */
0374 #define EXTI_LINE85      ((uint32_t)0x55)
0375 #define EXTI_LINE86      ((uint32_t)0x56)  /* Not available in all family lines */
0376 #define EXTI_LINE87      ((uint32_t)0x57)
0377 #define EXTI_LINE88      ((uint32_t)0x58)  /* Not available in all family lines */
0378 #define EXTI_LINE89      ((uint32_t)0x59)  /* Not available in all family lines */
0379 #define EXTI_LINE90      ((uint32_t)0x5A)  /* Not available in all family lines */
0380 #define EXTI_LINE91      ((uint32_t)0x5B)  /* Not available in all family lines */
0381 
0382 #if defined(DUAL_CORE)
0383 #define IS_HAL_EXTI_CONFIG_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1) || \
0384                                 ((LINE) == EXTI_LINE2)  || ((LINE) == EXTI_LINE3)   || \
0385                                 ((LINE) == EXTI_LINE4)  || ((LINE) == EXTI_LINE5)   || \
0386                                 ((LINE) == EXTI_LINE6)  || ((LINE) == EXTI_LINE7)   || \
0387                                 ((LINE) == EXTI_LINE8)  || ((LINE) == EXTI_LINE9)   || \
0388                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11)  || \
0389                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13)  || \
0390                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15)  || \
0391                                 ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17)  || \
0392                                 ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19)  || \
0393                                 ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21)  || \
0394                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE51)  || \
0395                                 ((LINE) == EXTI_LINE82) || ((LINE) == EXTI_LINE84)  || \
0396                                 ((LINE) == EXTI_LINE85) || ((LINE) == EXTI_LINE86))
0397 #else
0398 #define IS_HAL_EXTI_CONFIG_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1)|| \
0399                                 ((LINE) == EXTI_LINE2)  || ((LINE) == EXTI_LINE3)   || \
0400                                 ((LINE) == EXTI_LINE4)  || ((LINE) == EXTI_LINE5)   || \
0401                                 ((LINE) == EXTI_LINE6)  || ((LINE) == EXTI_LINE7)   || \
0402                                 ((LINE) == EXTI_LINE8)  || ((LINE) == EXTI_LINE9)   || \
0403                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11)  || \
0404                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13)  || \
0405                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15)  || \
0406                                 ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17)  || \
0407                                 ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19)  || \
0408                                 ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21)  || \
0409                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE51)  || \
0410                                 ((LINE) == EXTI_LINE85) || ((LINE) == EXTI_LINE86))
0411 #endif /* DUAL_CORE */
0412 
0413 #if defined(DUAL_CORE)
0414 #define IS_EXTI_ALL_LINE(LINE) (((LINE) == EXTI_LINE0)  || ((LINE) == EXTI_LINE1)  || \
0415                                 ((LINE) == EXTI_LINE2)  || ((LINE) == EXTI_LINE3)  || \
0416                                 ((LINE) == EXTI_LINE4)  || ((LINE) == EXTI_LINE5)  || \
0417                                 ((LINE) == EXTI_LINE6)  || ((LINE) == EXTI_LINE7)  || \
0418                                 ((LINE) == EXTI_LINE8)  || ((LINE) == EXTI_LINE9)  || \
0419                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
0420                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
0421                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
0422                                 ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
0423                                 ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
0424                                 ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
0425                                 ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
0426                                 ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
0427                                 ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
0428                                 ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
0429                                 ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
0430                                 ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
0431                                 ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
0432                                 ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
0433                                 ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
0434                                 ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
0435                                 ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
0436                                 ((LINE) == EXTI_LINE44) || ((LINE) == EXTI_LINE46) || \
0437                                 ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
0438                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
0439                                 ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
0440                                 ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
0441                                 ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
0442                                 ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
0443                                 ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
0444                                 ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
0445                                 ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
0446                                 ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
0447                                 ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
0448                                 ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
0449                                 ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
0450                                 ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
0451                                 ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
0452                                 ((LINE) == EXTI_LINE77) || ((LINE) == EXTI_LINE79) || \
0453                                 ((LINE) == EXTI_LINE84) || ((LINE) == EXTI_LINE85) || \
0454                                 ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87) || \
0455                                 ((LINE) == EXTI_LINE78) || \
0456                                 ((LINE) == EXTI_LINE80) || ((LINE) == EXTI_LINE82))
0457 #else
0458 #define IS_EXTI_ALL_LINE(LINE) (((LINE) == EXTI_LINE0)  || ((LINE) == EXTI_LINE1)  || \
0459                                 ((LINE) == EXTI_LINE2)  || ((LINE) == EXTI_LINE3)  || \
0460                                 ((LINE) == EXTI_LINE4)  || ((LINE) == EXTI_LINE5)  || \
0461                                 ((LINE) == EXTI_LINE6)  || ((LINE) == EXTI_LINE7)  || \
0462                                 ((LINE) == EXTI_LINE8)  || ((LINE) == EXTI_LINE9)  || \
0463                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
0464                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
0465                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
0466                                 ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
0467                                 ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
0468                                 ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
0469                                 ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
0470                                 ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
0471                                 ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
0472                                 ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
0473                                 ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
0474                                 ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
0475                                 ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
0476                                 ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
0477                                 ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
0478                                 ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
0479                                 ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
0480                                 ((LINE) == EXTI_LINE44) || \
0481                                 ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
0482                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
0483                                 ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
0484                                 ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
0485                                 ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
0486                                 ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
0487                                 ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
0488                                 ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
0489                                 ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
0490                                 ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
0491                                 ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
0492                                 ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
0493                                 ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
0494                                 ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
0495                                 ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
0496                                 ((LINE) == EXTI_LINE85) || \
0497                                 ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87) || \
0498                                 ((LINE) == EXTI_LINE88) || ((LINE) == EXTI_LINE89) || \
0499                                 ((LINE) == EXTI_LINE90) || ((LINE) == EXTI_LINE91))
0500 #endif /*DUAL_CORE*/
0501 
0502 #if defined(DUAL_CORE)
0503 #define IS_EXTI_D1_LINE(LINE) (((LINE) == EXTI_LINE0)  || ((LINE) == EXTI_LINE1)  || \
0504                                 ((LINE) == EXTI_LINE2)  || ((LINE) == EXTI_LINE3)  || \
0505                                 ((LINE) == EXTI_LINE4)  || ((LINE) == EXTI_LINE5)  || \
0506                                 ((LINE) == EXTI_LINE6)  || ((LINE) == EXTI_LINE7)  || \
0507                                 ((LINE) == EXTI_LINE8)  || ((LINE) == EXTI_LINE9)  || \
0508                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
0509                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
0510                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
0511                                 ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
0512                                 ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
0513                                 ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
0514                                 ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
0515                                 ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
0516                                 ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
0517                                 ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
0518                                 ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
0519                                 ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
0520                                 ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
0521                                 ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
0522                                 ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
0523                                 ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
0524                                 ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
0525                                 ((LINE) == EXTI_LINE44) || ((LINE) == EXTI_LINE46) || \
0526                                 ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
0527                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
0528                                 ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
0529                                 ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
0530                                 ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
0531                                 ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
0532                                 ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
0533                                 ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
0534                                 ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
0535                                 ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
0536                                 ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
0537                                 ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
0538                                 ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
0539                                 ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
0540                                 ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
0541                                 ((LINE) == EXTI_LINE77) || ((LINE) == EXTI_LINE79) || \
0542                                 ((LINE) == EXTI_LINE84) || ((LINE) == EXTI_LINE85) || \
0543                                 ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87))
0544 #else
0545 #define IS_EXTI_D1_LINE(LINE) (((LINE) == EXTI_LINE0)  || ((LINE) == EXTI_LINE1)  || \
0546                                 ((LINE) == EXTI_LINE2)  || ((LINE) == EXTI_LINE3)  || \
0547                                 ((LINE) == EXTI_LINE4)  || ((LINE) == EXTI_LINE5)  || \
0548                                 ((LINE) == EXTI_LINE6)  || ((LINE) == EXTI_LINE7)  || \
0549                                 ((LINE) == EXTI_LINE8)  || ((LINE) == EXTI_LINE9)  || \
0550                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
0551                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
0552                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
0553                                 ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
0554                                 ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
0555                                 ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
0556                                 ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
0557                                 ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
0558                                 ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
0559                                 ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
0560                                 ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
0561                                 ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
0562                                 ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
0563                                 ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
0564                                 ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
0565                                 ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
0566                                 ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
0567                                 ((LINE) == EXTI_LINE44) || \
0568                                 ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
0569                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
0570                                 ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
0571                                 ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
0572                                 ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
0573                                 ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
0574                                 ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
0575                                 ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
0576                                 ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
0577                                 ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
0578                                 ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
0579                                 ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
0580                                 ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
0581                                 ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
0582                                 ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
0583                                 ((LINE) == EXTI_LINE85) || \
0584                                 ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87) || \
0585                                 ((LINE) == EXTI_LINE88) || ((LINE) == EXTI_LINE89) || \
0586                                 ((LINE) == EXTI_LINE90) || ((LINE) == EXTI_LINE91))
0587 #endif /*DUAL_CORE*/
0588 
0589 #if defined(DUAL_CORE)
0590 #define IS_EXTI_D2_LINE(LINE) (((LINE) == EXTI_LINE0)  || ((LINE) == EXTI_LINE1)    || \
0591                                 ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3)   || \
0592                                 ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5)   || \
0593                                 ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7)   || \
0594                                 ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9)   || \
0595                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
0596                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
0597                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
0598                                 ((LINE) == EXTI_LINE16) || ((LINE) == EXTI_LINE17) || \
0599                                 ((LINE) == EXTI_LINE18) || ((LINE) == EXTI_LINE19) || \
0600                                 ((LINE) == EXTI_LINE20) || ((LINE) == EXTI_LINE21) || \
0601                                 ((LINE) == EXTI_LINE22) || ((LINE) == EXTI_LINE23) || \
0602                                 ((LINE) == EXTI_LINE24) || ((LINE) == EXTI_LINE25) || \
0603                                 ((LINE) == EXTI_LINE26) || ((LINE) == EXTI_LINE27) || \
0604                                 ((LINE) == EXTI_LINE28) || ((LINE) == EXTI_LINE29) || \
0605                                 ((LINE) == EXTI_LINE30) || ((LINE) == EXTI_LINE31) || \
0606                                 ((LINE) == EXTI_LINE32) || ((LINE) == EXTI_LINE33) || \
0607                                 ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
0608                                 ((LINE) == EXTI_LINE36) || ((LINE) == EXTI_LINE37) || \
0609                                 ((LINE) == EXTI_LINE38) || ((LINE) == EXTI_LINE39) || \
0610                                 ((LINE) == EXTI_LINE40) || ((LINE) == EXTI_LINE41) || \
0611                                 ((LINE) == EXTI_LINE42) || ((LINE) == EXTI_LINE43) || \
0612                                 ((LINE) == EXTI_LINE44) || ((LINE) == EXTI_LINE46) || \
0613                                 ((LINE) == EXTI_LINE47) || ((LINE) == EXTI_LINE48) || \
0614                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
0615                                 ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
0616                                 ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE54) || \
0617                                 ((LINE) == EXTI_LINE55) || ((LINE) == EXTI_LINE56) || \
0618                                 ((LINE) == EXTI_LINE57) || ((LINE) == EXTI_LINE58) || \
0619                                 ((LINE) == EXTI_LINE59) || ((LINE) == EXTI_LINE60) || \
0620                                 ((LINE) == EXTI_LINE61) || ((LINE) == EXTI_LINE62) || \
0621                                 ((LINE) == EXTI_LINE63) || ((LINE) == EXTI_LINE64) || \
0622                                 ((LINE) == EXTI_LINE65) || ((LINE) == EXTI_LINE66) || \
0623                                 ((LINE) == EXTI_LINE67) || ((LINE) == EXTI_LINE68) || \
0624                                 ((LINE) == EXTI_LINE69) || ((LINE) == EXTI_LINE70) || \
0625                                 ((LINE) == EXTI_LINE71) || ((LINE) == EXTI_LINE72) || \
0626                                 ((LINE) == EXTI_LINE73) || ((LINE) == EXTI_LINE74) || \
0627                                 ((LINE) == EXTI_LINE75) || ((LINE) == EXTI_LINE76) || \
0628                                 ((LINE) == EXTI_LINE78) || ((LINE) == EXTI_LINE80) || \
0629                                 ((LINE) == EXTI_LINE82) || ((LINE) == EXTI_LINE85) || \
0630                                 ((LINE) == EXTI_LINE86) || ((LINE) == EXTI_LINE87))
0631 #endif /*DUAL_CORE*/
0632 
0633 #if defined(DUAL_CORE)
0634 #define IS_EXTI_D3_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1)    || \
0635                                 ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3)   || \
0636                                 ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5)   || \
0637                                 ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7)   || \
0638                                 ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9)   || \
0639                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
0640                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
0641                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
0642                                 ((LINE) == EXTI_LINE19) || ((LINE) == EXTI_LINE20) || \
0643                                 ((LINE) == EXTI_LINE21) || ((LINE) == EXTI_LINE25) || \
0644                                 ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
0645                                 ((LINE) == EXTI_LINE41) || ((LINE) == EXTI_LINE48) || \
0646                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
0647                                 ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
0648                                 ((LINE) == EXTI_LINE53))
0649 #elif (POWER_DOMAINS_NUMBER == 3U)
0650 #define IS_EXTI_D3_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1)    || \
0651                                 ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3)   || \
0652                                 ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5)   || \
0653                                 ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7)   || \
0654                                 ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9)   || \
0655                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
0656                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
0657                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
0658                                 ((LINE) == EXTI_LINE19) || ((LINE) == EXTI_LINE20) || \
0659                                 ((LINE) == EXTI_LINE21) || ((LINE) == EXTI_LINE25) || \
0660                                 ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
0661                                 ((LINE) == EXTI_LINE41) || ((LINE) == EXTI_LINE48) || \
0662                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
0663                                 ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE52) || \
0664                                 ((LINE) == EXTI_LINE53) || ((LINE) == EXTI_LINE88))
0665 #else
0666 #define IS_EXTI_D3_LINE(LINE) (((LINE) == EXTI_LINE0) || ((LINE) == EXTI_LINE1)    || \
0667                                 ((LINE) == EXTI_LINE2) || ((LINE) == EXTI_LINE3)   || \
0668                                 ((LINE) == EXTI_LINE4) || ((LINE) == EXTI_LINE5)   || \
0669                                 ((LINE) == EXTI_LINE6) || ((LINE) == EXTI_LINE7)   || \
0670                                 ((LINE) == EXTI_LINE8) || ((LINE) == EXTI_LINE9)   || \
0671                                 ((LINE) == EXTI_LINE10) || ((LINE) == EXTI_LINE11) || \
0672                                 ((LINE) == EXTI_LINE12) || ((LINE) == EXTI_LINE13) || \
0673                                 ((LINE) == EXTI_LINE14) || ((LINE) == EXTI_LINE15) || \
0674                                 ((LINE) == EXTI_LINE19) || ((LINE) == EXTI_LINE20) || \
0675                                 ((LINE) == EXTI_LINE21) || ((LINE) == EXTI_LINE25) || \
0676                                 ((LINE) == EXTI_LINE34) || ((LINE) == EXTI_LINE35) || \
0677                                 ((LINE) == EXTI_LINE41) || ((LINE) == EXTI_LINE48) || \
0678                                 ((LINE) == EXTI_LINE49) || ((LINE) == EXTI_LINE50) || \
0679                                 ((LINE) == EXTI_LINE51) || ((LINE) == EXTI_LINE88))
0680 #endif /*DUAL_CORE*/
0681 
0682 
0683 #define  BDMA_CH6_CLEAR           ((uint32_t)0x00000000)   /*!< BDMA ch6 event selected as D3 domain pendclear source*/
0684 #define  BDMA_CH7_CLEAR           ((uint32_t)0x00000001)   /*!< BDMA ch7 event selected as D3 domain pendclear source*/
0685 #if defined (LPTIM4)
0686 #define  LPTIM4_OUT_CLEAR         ((uint32_t)0x00000002)   /*!< LPTIM4 out selected as D3 domain pendclear source*/
0687 #else
0688 #define  LPTIM2_OUT_CLEAR         ((uint32_t)0x00000002)   /*!< LPTIM2 out selected as D3 domain pendclear source*/
0689 #endif /* LPTIM4 */
0690 #if defined (LPTIM5)
0691 #define  LPTIM5_OUT_CLEAR         ((uint32_t)0x00000003)   /*!< LPTIM5 out selected as D3 domain pendclear source*/
0692 #else
0693 #define  LPTIM3_OUT_CLEAR         ((uint32_t)0x00000003)   /*!< LPTIM3 out selected as D3 domain pendclear source*/
0694 #endif /* LPTIM5 */
0695 #if defined (LPTIM4) && defined (LPTIM5)
0696 #define IS_EXTI_D3_CLEAR(SOURCE) (((SOURCE) == BDMA_CH6_CLEAR) || ((SOURCE) == BDMA_CH7_CLEAR)    || \
0697                                  ((SOURCE) == LPTIM4_OUT_CLEAR) || ((SOURCE) == LPTIM5_OUT_CLEAR))
0698 #else
0699 #define IS_EXTI_D3_CLEAR(SOURCE) (((SOURCE) == BDMA_CH6_CLEAR) || ((SOURCE) == BDMA_CH7_CLEAR)    || \
0700                                  ((SOURCE) == LPTIM2_OUT_CLEAR) || ((SOURCE) == LPTIM3_OUT_CLEAR))
0701 #endif /* LPTIM4 LPTIM5 */
0702 /**
0703   * @}
0704   */
0705 
0706 
0707 /** @defgroup FMC_SwapBankMapping_Config  SwapBankMapping Config
0708   * @ingroup RTEMSBSPsARMSTM32H7
0709   * @{
0710   */
0711 #define FMC_SWAPBMAP_DISABLE             (0x00000000U)
0712 #define FMC_SWAPBMAP_SDRAM_SRAM          FMC_BCR1_BMAP_0
0713 #define FMC_SWAPBMAP_SDRAMB2             FMC_BCR1_BMAP_1
0714 
0715 #define IS_FMC_SWAPBMAP_MODE(__MODE__) (((__MODE__) == FMC_SWAPBMAP_DISABLE)    || \
0716                                         ((__MODE__) == FMC_SWAPBMAP_SDRAM_SRAM) || \
0717                                         ((__MODE__) == FMC_SWAPBMAP_SDRAMB2))
0718 /**
0719   * @}
0720   */
0721 /**
0722   * @}
0723   */
0724 
0725 /* Exported macro ------------------------------------------------------------*/
0726 /** @defgroup HAL_Exported_Macros HAL Exported Macros
0727   * @ingroup RTEMSBSPsARMSTM32H7
0728   * @{
0729   */
0730 #if defined(DUAL_CORE)
0731 /** @defgroup ART_Exported_Macros ART Exported Macros
0732   * @ingroup RTEMSBSPsARMSTM32H7
0733   * @{
0734   */
0735 
0736 /** @brief  ART Enable Macro.
0737   *         Enable the Cortex-M4 ART cache.
0738   */
0739 #define __HAL_ART_ENABLE()   SET_BIT(ART->CTR, ART_CTR_EN)
0740 
0741 /** @brief  ART Disable Macro.
0742   *         Disable the Cortex-M4 ART cache.
0743   */
0744 #define __HAL_ART_DISABLE()   CLEAR_BIT(ART->CTR, ART_CTR_EN)
0745 
0746 /** @brief  ART Cache BaseAddress Config.
0747   *         Configure the Cortex-M4 ART cache Base Address.
0748   */
0749 #define __HAL_ART_CONFIG_BASE_ADDRESS(__BASE_ADDRESS__)   MODIFY_REG(ART->CTR, ART_CTR_PCACHEADDR, (((__BASE_ADDRESS__) >> 12U) & 0x000FFF00UL))
0750 
0751 /**
0752   * @}
0753   */
0754 #endif /* DUAL_CORE */
0755 
0756 /** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros
0757   * @ingroup RTEMSBSPsARMSTM32H7
0758   * @{
0759   */
0760 
0761 /** @brief  SYSCFG Break AXIRAM double ECC lock.
0762   *         Enable and lock the connection of AXIRAM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
0763   * @note   The selected configuration is locked and can be unlocked only by system reset.
0764             This feature is available on STM32H7 rev.B and above.
0765   */
0766 #define __HAL_SYSCFG_BREAK_AXISRAM_DBL_ECC_LOCK()     SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_AXISRAML)
0767 
0768 /** @brief  SYSCFG Break ITCM double ECC lock.
0769   *         Enable and lock the connection of ITCM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
0770   * @note   The selected configuration is locked and can be unlocked only by system reset.
0771             This feature is available on STM32H7 rev.B and above.
0772   */
0773 #define __HAL_SYSCFG_BREAK_ITCM_DBL_ECC_LOCK()        SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_ITCML)
0774 
0775 /** @brief  SYSCFG Break DTCM double ECC lock.
0776   *         Enable and lock the connection of DTCM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
0777   * @note   The selected configuration is locked and can be unlocked only by system reset.
0778             This feature is available on STM32H7 rev.B and above.
0779   */
0780 #define __HAL_SYSCFG_BREAK_DTCM_DBL_ECC_LOCK()        SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_DTCML)
0781 
0782 /** @brief  SYSCFG Break SRAM1 double ECC lock.
0783   *         Enable and lock the connection of SRAM1 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
0784   * @note   The selected configuration is locked and can be unlocked only by system reset.
0785             This feature is available on STM32H7 rev.B and above.
0786   */
0787 #define __HAL_SYSCFG_BREAK_SRAM1_DBL_ECC_LOCK()       SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_SRAM1L)
0788 
0789 /** @brief  SYSCFG Break SRAM2 double ECC lock.
0790   *         Enable and lock the connection of SRAM2 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
0791   * @note   The selected configuration is locked and can be unlocked only by system reset.
0792             This feature is available on STM32H7 rev.B and above.
0793   */
0794 #define __HAL_SYSCFG_BREAK_SRAM2_DBL_ECC_LOCK()       SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_SRAM2L)
0795 
0796 /** @brief  SYSCFG Break SRAM3 double ECC lock.
0797   *         Enable and lock the connection of SRAM3 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
0798   * @note   The selected configuration is locked and can be unlocked only by system reset.
0799             This feature is available on STM32H7 rev.B and above.
0800   */
0801 #define __HAL_SYSCFG_BREAK_SRAM3_DBL_ECC_LOCK()       SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_SRAM3L)
0802 
0803 /** @brief  SYSCFG Break SRAM4 double ECC lock.
0804   *         Enable and lock the connection of SRAM4 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
0805   * @note   The selected configuration is locked and can be unlocked only by system reset.
0806             This feature is available on STM32H7 rev.B and above.
0807   */
0808 #define __HAL_SYSCFG_BREAK_SRAM4_DBL_ECC_LOCK()       SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_SRAM4L)
0809 
0810 /** @brief  SYSCFG Break Backup SRAM double ECC lock.
0811   *         Enable and lock the connection of Backup SRAM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
0812   * @note   The selected configuration is locked and can be unlocked only by system reset.
0813             This feature is available on STM32H7 rev.B and above.
0814   */
0815 #define __HAL_SYSCFG_BREAK_BKRAM_DBL_ECC_LOCK()       SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_BKRAML)
0816 
0817 /** @brief  SYSCFG Break Cortex-M7 Lockup lock.
0818   *         Enable and lock the connection of Cortex-M7 LOCKUP output to TIM1/8/15/16/17 and HRTIMER Break input.
0819   * @note   The selected configuration is locked and can be unlocked only by system reset.
0820             This feature is available on STM32H7 rev.B and above.
0821   */
0822 #define __HAL_SYSCFG_BREAK_CM7_LOCKUP_LOCK()          SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_CM7L)
0823 
0824 /** @brief  SYSCFG Break FLASH double ECC lock.
0825   *         Enable and lock the connection of Flash double ECC error connection to TIM1/8/15/16/17 and HRTIMER Break input.
0826   * @note   The selected configuration is locked and can be unlocked only by system reset.
0827             This feature is available on STM32H7 rev.B and above.
0828   */
0829 #define __HAL_SYSCFG_BREAK_FLASH_DBL_ECC_LOCK()       SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_FLASHL)
0830 
0831 /** @brief  SYSCFG Break PVD lock.
0832   *         Enable and lock the PVD connection to Timer1/8/15/16/17 and HRTIMER Break input, as well as the PVDE and PLS[2:0] in the PWR_CR1 register.
0833   * @note   The selected configuration is locked and can be unlocked only by system reset.
0834             This feature is available on STM32H7 rev.B and above.
0835   */
0836 #define __HAL_SYSCFG_BREAK_PVD_LOCK()                 SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_PVDL)
0837 
0838 #if defined(DUAL_CORE)
0839 /** @brief  SYSCFG Break Cortex-M4 Lockup lock.
0840   *         Enable and lock the connection of Cortex-M4 LOCKUP output to TIM1/8/15/16/17 and HRTIMER Break input.
0841   * @note   The selected configuration is locked and can be unlocked only by system reset.
0842             This feature is available on STM32H7 rev.B and above.
0843   */
0844 #define __HAL_SYSCFG_BREAK_CM4_LOCKUP_LOCK()          SET_BIT(SYSCFG->CFGR, SYSCFG_CFGR_CM4L)
0845 #endif /* DUAL_CORE */
0846 
0847 #if !defined(SYSCFG_PMCR_BOOSTEN)
0848 /** @brief  Fast-mode Plus driving capability enable/disable macros
0849   * @param __FASTMODEPLUS__  This parameter can be a value of :
0850   *     @arg @ref SYSCFG_FASTMODEPLUS_PB6 Fast-mode Plus driving capability activation on PB6
0851   *     @arg @ref SYSCFG_FASTMODEPLUS_PB7 Fast-mode Plus driving capability activation on PB7
0852   *     @arg @ref SYSCFG_FASTMODEPLUS_PB8 Fast-mode Plus driving capability activation on PB8
0853   *     @arg @ref SYSCFG_FASTMODEPLUS_PB9 Fast-mode Plus driving capability activation on PB9
0854   */
0855 #define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__)  do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
0856                                                                 SET_BIT(SYSCFG->PMCR, (__FASTMODEPLUS__));\
0857                                                                }while(0)
0858 
0859 #define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
0860                                                                 CLEAR_BIT(SYSCFG->PMCR, (__FASTMODEPLUS__));\
0861                                                                }while(0)
0862 
0863 #endif /* !SYSCFG_PMCR_BOOSTEN */
0864 /**
0865   * @}
0866   */
0867 
0868 /** @defgroup DBG_Exported_Macros DBG Exported Macros
0869   * @ingroup RTEMSBSPsARMSTM32H7
0870   * @{
0871   */
0872 
0873 /** @brief  Freeze/Unfreeze Peripherals in Debug mode
0874   */
0875 #define __HAL_DBGMCU_FREEZE_WWDG1()          (DBGMCU->APB3FZ1 |= (DBGMCU_APB3FZ1_DBG_WWDG1))
0876 
0877 #define __HAL_DBGMCU_FREEZE_TIM2()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM2))
0878 #define __HAL_DBGMCU_FREEZE_TIM3()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM3))
0879 #define __HAL_DBGMCU_FREEZE_TIM4()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM4))
0880 #define __HAL_DBGMCU_FREEZE_TIM5()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM5))
0881 #define __HAL_DBGMCU_FREEZE_TIM6()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM6))
0882 #define __HAL_DBGMCU_FREEZE_TIM7()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM7))
0883 #define __HAL_DBGMCU_FREEZE_TIM12()          (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM12))
0884 #define __HAL_DBGMCU_FREEZE_TIM13()          (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM13))
0885 #define __HAL_DBGMCU_FREEZE_TIM14()          (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_TIM14))
0886 #define __HAL_DBGMCU_FREEZE_LPTIM1()         (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_LPTIM1))
0887 #define __HAL_DBGMCU_FREEZE_I2C1()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_I2C1))
0888 #define __HAL_DBGMCU_FREEZE_I2C2()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_I2C2))
0889 #define __HAL_DBGMCU_FREEZE_I2C3()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_I2C3))
0890 #if defined(I2C5)
0891 #define __HAL_DBGMCU_FREEZE_I2C5()           (DBGMCU->APB1LFZ1 |= (DBGMCU_APB1LFZ1_DBG_I2C5))
0892 #endif /*I2C5*/
0893 #if defined(DBGMCU_APB1HFZ1_DBG_FDCAN)
0894 #define __HAL_DBGMCU_FREEZE_FDCAN()          (DBGMCU->APB1HFZ1 |= (DBGMCU_APB1HFZ1_DBG_FDCAN))
0895 #endif /*DBGMCU_APB1HFZ1_DBG_FDCAN*/
0896 
0897 #if defined(TIM23)
0898 #define __HAL_DBGMCU_FREEZE_TIM23()           (DBGMCU->APB1HFZ1 |= (DBGMCU_APB1HFZ1_DBG_TIM23))
0899 #endif /*TIM23*/
0900 #if defined(TIM24)
0901 #define __HAL_DBGMCU_FREEZE_TIM24()           (DBGMCU->APB1HFZ1 |= (DBGMCU_APB1HFZ1_DBG_TIM24))
0902 #endif /*TIM24*/
0903 
0904 #define __HAL_DBGMCU_FREEZE_TIM1()           (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM1))
0905 #define __HAL_DBGMCU_FREEZE_TIM8()           (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM8))
0906 #define __HAL_DBGMCU_FREEZE_TIM15()          (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM15))
0907 #define __HAL_DBGMCU_FREEZE_TIM16()          (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM16))
0908 #define __HAL_DBGMCU_FREEZE_TIM17()          (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_TIM17))
0909 #define __HAL_DBGMCU_FREEZE_HRTIM()          (DBGMCU->APB2FZ1 |= (DBGMCU_APB2FZ1_DBG_HRTIM))
0910 
0911 #define __HAL_DBGMCU_FREEZE_I2C4()           (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_I2C4))
0912 #define __HAL_DBGMCU_FREEZE_LPTIM2()         (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_LPTIM2))
0913 #define __HAL_DBGMCU_FREEZE_LPTIM3()         (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_LPTIM3))
0914 #define __HAL_DBGMCU_FREEZE_LPTIM4()         (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_LPTIM4))
0915 #define __HAL_DBGMCU_FREEZE_LPTIM5()         (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_LPTIM5))
0916 #define __HAL_DBGMCU_FREEZE_RTC()            (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_RTC))
0917 #define __HAL_DBGMCU_FREEZE_IWDG1()          (DBGMCU->APB4FZ1 |= (DBGMCU_APB4FZ1_DBG_IWDG1))
0918 
0919 
0920 #define __HAL_DBGMCU_UnFreeze_WWDG1()          (DBGMCU->APB3FZ1  &= ~ (DBGMCU_APB3FZ1_DBG_WWDG1))
0921 
0922 #define __HAL_DBGMCU_UnFreeze_TIM2()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM2))
0923 #define __HAL_DBGMCU_UnFreeze_TIM3()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM3))
0924 #define __HAL_DBGMCU_UnFreeze_TIM4()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM4))
0925 #define __HAL_DBGMCU_UnFreeze_TIM5()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM5))
0926 #define __HAL_DBGMCU_UnFreeze_TIM6()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM6))
0927 #define __HAL_DBGMCU_UnFreeze_TIM7()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM7))
0928 #define __HAL_DBGMCU_UnFreeze_TIM12()          (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM12))
0929 #define __HAL_DBGMCU_UnFreeze_TIM13()          (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM13))
0930 #define __HAL_DBGMCU_UnFreeze_TIM14()          (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_TIM14))
0931 #define __HAL_DBGMCU_UnFreeze_LPTIM1()         (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_LPTIM1))
0932 #define __HAL_DBGMCU_UnFreeze_I2C1()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_I2C1))
0933 #define __HAL_DBGMCU_UnFreeze_I2C2()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_I2C2))
0934 #define __HAL_DBGMCU_UnFreeze_I2C3()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_I2C3))
0935 #if defined(I2C5)
0936 #define __HAL_DBGMCU_UnFreeze_I2C5()           (DBGMCU->APB1LFZ1  &= ~ (DBGMCU_APB1LFZ1_DBG_I2C5))
0937 #endif /*I2C5*/
0938 #if defined(DBGMCU_APB1HFZ1_DBG_FDCAN)
0939 #define __HAL_DBGMCU_UnFreeze_FDCAN()          (DBGMCU->APB1HFZ1  &= ~ (DBGMCU_APB1HFZ1_DBG_FDCAN))
0940 #endif /*DBGMCU_APB1HFZ1_DBG_FDCAN*/
0941 
0942 #if defined(TIM23)
0943 #define __HAL_DBGMCU_UnFreeze_TIM23()          (DBGMCU->APB1HFZ1 &= ~ (DBGMCU_APB1HFZ1_DBG_TIM23))
0944 #endif /*TIM23*/
0945 #if defined(TIM24)
0946 #define __HAL_DBGMCU_UnFreeze_TIM24()          (DBGMCU->APB1HFZ1 &= ~ (DBGMCU_APB1HFZ1_DBG_TIM24))
0947 #endif /*TIM24*/
0948 
0949 #define __HAL_DBGMCU_UnFreeze_TIM1()           (DBGMCU->APB2FZ1  &= ~ (DBGMCU_APB2FZ1_DBG_TIM1))
0950 #define __HAL_DBGMCU_UnFreeze_TIM8()           (DBGMCU->APB2FZ1  &= ~ (DBGMCU_APB2FZ1_DBG_TIM8))
0951 #define __HAL_DBGMCU_UnFreeze_TIM15()          (DBGMCU->APB2FZ1  &= ~ (DBGMCU_APB2FZ1_DBG_TIM15))
0952 #define __HAL_DBGMCU_UnFreeze_TIM16()          (DBGMCU->APB2FZ1  &= ~ (DBGMCU_APB2FZ1_DBG_TIM16))
0953 #define __HAL_DBGMCU_UnFreeze_TIM17()          (DBGMCU->APB2FZ1  &= ~ (DBGMCU_APB2FZ1_DBG_TIM17))
0954 #define __HAL_DBGMCU_UnFreeze_HRTIM()          (DBGMCU->APB2FZ1  &= ~ (DBGMCU_APB2FZ1_DBG_HRTIM))
0955 
0956 #define __HAL_DBGMCU_UnFreeze_I2C4()           (DBGMCU->APB4FZ1  &= ~ (DBGMCU_APB4FZ1_DBG_I2C4))
0957 #define __HAL_DBGMCU_UnFreeze_LPTIM2()         (DBGMCU->APB4FZ1  &= ~ (DBGMCU_APB4FZ1_DBG_LPTIM2))
0958 #define __HAL_DBGMCU_UnFreeze_LPTIM3()         (DBGMCU->APB4FZ1  &= ~ (DBGMCU_APB4FZ1_DBG_LPTIM3))
0959 #define __HAL_DBGMCU_UnFreeze_LPTIM4()         (DBGMCU->APB4FZ1  &= ~ (DBGMCU_APB4FZ1_DBG_LPTIM4))
0960 #define __HAL_DBGMCU_UnFreeze_LPTIM5()         (DBGMCU->APB4FZ1  &= ~ (DBGMCU_APB4FZ1_DBG_LPTIM5))
0961 #define __HAL_DBGMCU_UnFreeze_RTC()            (DBGMCU->APB4FZ1  &= ~ (DBGMCU_APB4FZ1_DBG_RTC))
0962 #define __HAL_DBGMCU_UnFreeze_IWDG1()          (DBGMCU->APB4FZ1  &= ~ (DBGMCU_APB4FZ1_DBG_IWDG1))
0963 
0964 
0965 #if defined(DUAL_CORE)
0966 #define __HAL_DBGMCU_FREEZE2_IWDG2()          (DBGMCU->APB4FZ2  |= (DBGMCU_APB4FZ2_DBG_IWDG2))
0967 #define __HAL_DBGMCU_FREEZE2_WWDG2()          (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_WWDG2))
0968 
0969 #define __HAL_DBGMCU_UnFreeze2_IWDG2()        (DBGMCU->APB4FZ2  &= ~ (DBGMCU_APB4FZ2_DBG_IWDG2))
0970 #define __HAL_DBGMCU_UnFreeze2_WWDG2()        (DBGMCU->APB1LFZ2 &= ~ (DBGMCU_APB1LFZ2_DBG_WWDG2))
0971 
0972 
0973 #define __HAL_DBGMCU_FREEZE2_WWDG1()          (DBGMCU->APB3FZ2 |= (DBGMCU_APB3FZ2_DBG_WWDG1))
0974 
0975 #define __HAL_DBGMCU_FREEZE2_TIM2()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM2))
0976 #define __HAL_DBGMCU_FREEZE2_TIM3()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM3))
0977 #define __HAL_DBGMCU_FREEZE2_TIM4()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM4))
0978 #define __HAL_DBGMCU_FREEZE2_TIM5()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM5))
0979 #define __HAL_DBGMCU_FREEZE2_TIM6()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM6))
0980 #define __HAL_DBGMCU_FREEZE2_TIM7()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM7))
0981 #define __HAL_DBGMCU_FREEZE2_TIM12()          (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM12))
0982 #define __HAL_DBGMCU_FREEZE2_TIM13()          (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM13))
0983 #define __HAL_DBGMCU_FREEZE2_TIM14()          (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_TIM14))
0984 #define __HAL_DBGMCU_FREEZE2_LPTIM1()         (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_LPTIM1))
0985 #define __HAL_DBGMCU_FREEZE2_I2C1()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_I2C1))
0986 #define __HAL_DBGMCU_FREEZE2_I2C2()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_I2C2))
0987 #define __HAL_DBGMCU_FREEZE2_I2C3()           (DBGMCU->APB1LFZ2 |= (DBGMCU_APB1LFZ2_DBG_I2C3))
0988 #define __HAL_DBGMCU_FREEZE2_FDCAN()          (DBGMCU->APB1HFZ2 |= (DBGMCU_APB1HFZ2_DBG_FDCAN))
0989 
0990 
0991 #define __HAL_DBGMCU_FREEZE2_TIM1()           (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM1))
0992 #define __HAL_DBGMCU_FREEZE2_TIM8()           (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM8))
0993 #define __HAL_DBGMCU_FREEZE2_TIM15()          (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM15))
0994 #define __HAL_DBGMCU_FREEZE2_TIM16()          (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM16))
0995 #define __HAL_DBGMCU_FREEZE2_TIM17()          (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_TIM17))
0996 #define __HAL_DBGMCU_FREEZE2_HRTIM()          (DBGMCU->APB2FZ2 |= (DBGMCU_APB2FZ2_DBG_HRTIM))
0997 
0998 #define __HAL_DBGMCU_FREEZE2_I2C4()           (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_I2C4))
0999 #define __HAL_DBGMCU_FREEZE2_LPTIM2()         (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_LPTIM2))
1000 #define __HAL_DBGMCU_FREEZE2_LPTIM3()         (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_LPTIM3))
1001 #define __HAL_DBGMCU_FREEZE2_LPTIM4()         (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_LPTIM4))
1002 #define __HAL_DBGMCU_FREEZE2_LPTIM5()         (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_LPTIM5))
1003 #define __HAL_DBGMCU_FREEZE2_RTC()            (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_RTC))
1004 #define __HAL_DBGMCU_FREEZE2_IWDG1()          (DBGMCU->APB4FZ2 |= (DBGMCU_APB4FZ2_DBG_IWDG1))
1005 
1006 #define __HAL_DBGMCU_UnFreeze2_WWDG1()          (DBGMCU->APB3FZ2  &= ~ (DBGMCU_APB3FZ2_DBG_WWDG1))
1007 
1008 #define __HAL_DBGMCU_UnFreeze2_TIM2()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM2))
1009 #define __HAL_DBGMCU_UnFreeze2_TIM3()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM3))
1010 #define __HAL_DBGMCU_UnFreeze2_TIM4()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM4))
1011 #define __HAL_DBGMCU_UnFreeze2_TIM5()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM5))
1012 #define __HAL_DBGMCU_UnFreeze2_TIM6()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM6))
1013 #define __HAL_DBGMCU_UnFreeze2_TIM7()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM7))
1014 #define __HAL_DBGMCU_UnFreeze2_TIM12()          (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM12))
1015 #define __HAL_DBGMCU_UnFreeze2_TIM13()          (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM13))
1016 #define __HAL_DBGMCU_UnFreeze2_TIM14()          (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_TIM14))
1017 #define __HAL_DBGMCU_UnFreeze2_LPTIM1()         (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_LPTIM1))
1018 #define __HAL_DBGMCU_UnFreeze2_I2C1()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_I2C1))
1019 #define __HAL_DBGMCU_UnFreeze2_I2C2()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_I2C2))
1020 #define __HAL_DBGMCU_UnFreeze2_I2C3()           (DBGMCU->APB1LFZ2  &= ~ (DBGMCU_APB1LFZ2_DBG_I2C3))
1021 #define __HAL_DBGMCU_UnFreeze2_FDCAN()          (DBGMCU->APB1HFZ2  &= ~ (DBGMCU_APB1HFZ2_DBG_FDCAN))
1022 
1023 
1024 #define __HAL_DBGMCU_UnFreeze2_TIM1()           (DBGMCU->APB2FZ2  &= ~ (DBGMCU_APB2FZ2_DBG_TIM1))
1025 #define __HAL_DBGMCU_UnFreeze2_TIM8()           (DBGMCU->APB2FZ2  &= ~ (DBGMCU_APB2FZ2_DBG_TIM8))
1026 #define __HAL_DBGMCU_UnFreeze2_TIM15()          (DBGMCU->APB2FZ2  &= ~ (DBGMCU_APB2FZ2_DBG_TIM15))
1027 #define __HAL_DBGMCU_UnFreeze2_TIM16()          (DBGMCU->APB2FZ2  &= ~ (DBGMCU_APB2FZ2_DBG_TIM16))
1028 #define __HAL_DBGMCU_UnFreeze2_TIM17()          (DBGMCU->APB2FZ2  &= ~ (DBGMCU_APB2FZ2_DBG_TIM17))
1029 #define __HAL_DBGMCU_UnFreeze2_HRTIM()          (DBGMCU->APB2FZ2  &= ~ (DBGMCU_APB2FZ2_DBG_HRTIM))
1030 
1031 #define __HAL_DBGMCU_UnFreeze2_I2C4()           (DBGMCU->APB4FZ2  &= ~ (DBGMCU_APB4FZ2_DBG_I2C4))
1032 #define __HAL_DBGMCU_UnFreeze2_LPTIM2()         (DBGMCU->APB4FZ2  &= ~ (DBGMCU_APB4FZ2_DBG_LPTIM2))
1033 #define __HAL_DBGMCU_UnFreeze2_LPTIM3()         (DBGMCU->APB4FZ2  &= ~ (DBGMCU_APB4FZ2_DBG_LPTIM3))
1034 #define __HAL_DBGMCU_UnFreeze2_LPTIM4()         (DBGMCU->APB4FZ2  &= ~ (DBGMCU_APB4FZ2_DBG_LPTIM4))
1035 #define __HAL_DBGMCU_UnFreeze2_LPTIM5()         (DBGMCU->APB4FZ2  &= ~ (DBGMCU_APB4FZ2_DBG_LPTIM5))
1036 #define __HAL_DBGMCU_UnFreeze2_RTC()            (DBGMCU->APB4FZ2  &= ~ (DBGMCU_APB4FZ2_DBG_RTC))
1037 #define __HAL_DBGMCU_UnFreeze2_IWDG1()          (DBGMCU->APB4FZ2  &= ~ (DBGMCU_APB4FZ2_DBG_IWDG1))
1038 
1039 #endif /*DUAL_CORE*/
1040 /**
1041   * @}
1042   */
1043 /**
1044   * @}
1045   */
1046 
1047 /** @defgroup HAL_Private_Macros HAL Private Macros
1048   * @ingroup RTEMSBSPsARMSTM32H7
1049   * @{
1050   */
1051 #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ)  || \
1052                            ((FREQ) == HAL_TICK_FREQ_100HZ) || \
1053                            ((FREQ) == HAL_TICK_FREQ_1KHZ))
1054 /**
1055   * @}
1056   */
1057 
1058 /* Exported variables --------------------------------------------------------*/
1059 
1060 /** @addtogroup HAL_Exported_Variables
1061   * @{
1062   */
1063 extern __IO uint32_t uwTick;
1064 extern uint32_t uwTickPrio;
1065 extern HAL_TickFreqTypeDef uwTickFreq;
1066 /**
1067   * @}
1068   */
1069 
1070 /* Exported functions --------------------------------------------------------*/
1071 /** @defgroup HAL_Exported_Functions HAL Exported Functions
1072   * @ingroup RTEMSBSPsARMSTM32H7
1073   * @{
1074   */
1075 /* Initialization and de-initialization functions  ******************************/
1076 /** @defgroup HAL_Group1 Initialization and de-initialization Functions
1077   * @ingroup RTEMSBSPsARMSTM32H7
1078   * @{
1079   */
1080 HAL_StatusTypeDef HAL_Init(void);
1081 HAL_StatusTypeDef HAL_DeInit(void);
1082 void HAL_MspInit(void);
1083 void HAL_MspDeInit(void);
1084 HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority);
1085 
1086 /**
1087   * @}
1088   */
1089 
1090 /* Peripheral Control functions  ************************************************/
1091 /** @defgroup HAL_Group2 HAL Control functions
1092   * @ingroup RTEMSBSPsARMSTM32H7
1093  *
1094  */
1095 void HAL_IncTick(void);
1096 void HAL_Delay(uint32_t Delay);
1097 uint32_t HAL_GetTick(void);
1098 uint32_t HAL_GetTickPrio(void);
1099 HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
1100 HAL_TickFreqTypeDef HAL_GetTickFreq(void);
1101 void HAL_SuspendTick(void);
1102 void HAL_ResumeTick(void);
1103 uint32_t HAL_GetHalVersion(void);
1104 uint32_t HAL_GetREVID(void);
1105 uint32_t HAL_GetDEVID(void);
1106 uint32_t HAL_GetUIDw0(void);
1107 uint32_t HAL_GetUIDw1(void);
1108 uint32_t HAL_GetUIDw2(void);
1109 #if defined(SYSCFG_PMCR_EPIS_SEL)
1110 void HAL_SYSCFG_ETHInterfaceSelect(uint32_t SYSCFG_ETHInterface);
1111 #endif /* SYSCFG_PMCR_EPIS_SEL */
1112 void HAL_SYSCFG_AnalogSwitchConfig(uint32_t SYSCFG_AnalogSwitch , uint32_t SYSCFG_SwitchState );
1113 #if defined(SYSCFG_PMCR_BOOSTEN)
1114 void HAL_SYSCFG_EnableBOOST(void);
1115 void HAL_SYSCFG_DisableBOOST(void);
1116 #endif /* SYSCFG_PMCR_BOOSTEN */
1117 
1118 #if defined (SYSCFG_UR2_BOOT_ADD0) ||  defined (SYSCFG_UR2_BCM7_ADD0)
1119 void HAL_SYSCFG_CM7BootAddConfig(uint32_t BootRegister, uint32_t BootAddress);
1120 #endif /* SYSCFG_UR2_BOOT_ADD0 || SYSCFG_UR2_BCM7_ADD0*/
1121 
1122 #if defined(DUAL_CORE)
1123 void HAL_SYSCFG_CM4BootAddConfig(uint32_t BootRegister, uint32_t BootAddress);
1124 void HAL_SYSCFG_EnableCM7BOOT(void);
1125 void HAL_SYSCFG_DisableCM7BOOT(void);
1126 void HAL_SYSCFG_EnableCM4BOOT(void);
1127 void HAL_SYSCFG_DisableCM4BOOT(void);
1128 #endif /*DUAL_CORE*/
1129 void HAL_EnableCompensationCell(void);
1130 void HAL_DisableCompensationCell(void);
1131 void HAL_SYSCFG_EnableIOSpeedOptimize(void);
1132 void HAL_SYSCFG_DisableIOSpeedOptimize(void);
1133 void HAL_SYSCFG_CompensationCodeSelect(uint32_t SYSCFG_CompCode);
1134 void HAL_SYSCFG_CompensationCodeConfig(uint32_t SYSCFG_PMOSCode, uint32_t SYSCFG_NMOSCode);
1135 #if defined(SYSCFG_CCCR_NCC_MMC)
1136 void HAL_SYSCFG_VDDMMC_CompensationCodeConfig(uint32_t SYSCFG_PMOSCode, uint32_t SYSCFG_NMOSCode);
1137 #endif /* SYSCFG_CCCR_NCC_MMC */
1138 void HAL_DBGMCU_EnableDBGSleepMode(void);
1139 void HAL_DBGMCU_DisableDBGSleepMode(void);
1140 void HAL_DBGMCU_EnableDBGStopMode(void);
1141 void HAL_DBGMCU_DisableDBGStopMode(void);
1142 void HAL_DBGMCU_EnableDBGStandbyMode(void);
1143 void HAL_DBGMCU_DisableDBGStandbyMode(void);
1144 #if defined(DUAL_CORE)
1145 void HAL_EnableDomain2DBGSleepMode(void);
1146 void HAL_DisableDomain2DBGSleepMode(void);
1147 void HAL_EnableDomain2DBGStopMode(void);
1148 void HAL_DisableDomain2DBGStopMode(void);
1149 void HAL_EnableDomain2DBGStandbyMode(void);
1150 void HAL_DisableDomain2DBGStandbyMode(void);
1151 #endif /*DUAL_CORE*/
1152 #if defined(DBGMCU_CR_DBG_STOPD3)
1153 void HAL_EnableDomain3DBGStopMode(void);
1154 void HAL_DisableDomain3DBGStopMode(void);
1155 #endif /*DBGMCU_CR_DBG_STOPD3*/
1156 #if defined(DBGMCU_CR_DBG_STANDBYD3)
1157 void HAL_EnableDomain3DBGStandbyMode(void);
1158 void HAL_DisableDomain3DBGStandbyMode(void);
1159 #endif /*DBGMCU_CR_DBG_STANDBYD3*/
1160 void HAL_EXTI_EdgeConfig(uint32_t EXTI_Line , uint32_t EXTI_Edge );
1161 void HAL_EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);
1162 #if defined(DUAL_CORE)
1163 void HAL_EXTI_D2_ClearFlag(uint32_t EXTI_Line);
1164 #endif /*DUAL_CORE*/
1165 void HAL_EXTI_D1_ClearFlag(uint32_t EXTI_Line);
1166 void HAL_EXTI_D1_EventInputConfig(uint32_t EXTI_Line , uint32_t EXTI_Mode,  uint32_t EXTI_LineCmd);
1167 #if defined(DUAL_CORE)
1168 void HAL_EXTI_D2_EventInputConfig(uint32_t EXTI_Line , uint32_t EXTI_Mode,  uint32_t EXTI_LineCmd);
1169 #endif /*DUAL_CORE*/
1170 void HAL_EXTI_D3_EventInputConfig(uint32_t EXTI_Line, uint32_t EXTI_LineCmd , uint32_t EXTI_ClearSrc);
1171 void HAL_SetFMCMemorySwappingConfig(uint32_t BankMapConfig);
1172 uint32_t HAL_GetFMCMemorySwappingConfig(void);
1173 void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling);
1174 void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode);
1175 void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue);
1176 HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void);
1177 void HAL_SYSCFG_DisableVREFBUF(void);
1178 #if defined(SYSCFG_ADC2ALT_ADC2_ROUT0)
1179 void HAL_SYSCFG_ADC2ALT_Rout0Config(uint32_t Adc2AltRout0);
1180 #endif /*SYSCFG_ADC2ALT_ADC2_ROUT0*/
1181 #if defined(SYSCFG_ADC2ALT_ADC2_ROUT1)
1182 void HAL_SYSCFG_ADC2ALT_Rout1Config(uint32_t Adc2AltRout1);
1183 #endif /*SYSCFG_ADC2ALT_ADC2_ROUT1*/
1184 
1185 /**
1186   * @}
1187   */
1188 
1189 /**
1190   * @}
1191   */
1192 
1193 /**
1194   * @}
1195   */
1196 
1197 /**
1198   * @}
1199   */
1200 
1201 #ifdef __cplusplus
1202 }
1203 #endif
1204 
1205 #endif /* STM32H7xx_HAL_H */
1206 
1207