STM32H735xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32h7xx_hal_otfdec.h 00004 * @author MCD Application Team 00005 * @brief Header file of OTFDEC HAL module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * Copyright (c) 2018 STMicroelectronics. 00010 * All rights reserved. 00011 * 00012 * This software is licensed under terms that can be found in the LICENSE file 00013 * in the root directory of this software component. 00014 * If no LICENSE file comes with this software, it is provided AS-IS. 00015 * 00016 ****************************************************************************** 00017 */ 00018 00019 /* Define to prevent recursive inclusion -------------------------------------*/ 00020 #ifndef STM32H7xx_HAL_OTFDEC_H 00021 #define STM32H7xx_HAL_OTFDEC_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32h7xx_hal_def.h" 00029 00030 /** @addtogroup STM32H7xx_HAL_Driver 00031 * @{ 00032 */ 00033 00034 #if defined(OTFDEC1) 00035 00036 /** @addtogroup OTFDEC 00037 * @{ 00038 */ 00039 00040 /* Exported types ------------------------------------------------------------*/ 00041 00042 /** @defgroup OTFDEC_Exported_Types OTFDEC Exported Types 00043 * @{ 00044 */ 00045 00046 /** @defgroup OTFDEC_Exported_Types_Group1 OTFDEC region configuration definitions 00047 * @{ 00048 */ 00049 00050 /** 00051 * @brief OTFDEC region configuration structure definition 00052 */ 00053 typedef struct 00054 { 00055 uint32_t Nonce[2]; /*!< OTFDEC region nonce */ 00056 00057 uint32_t StartAddress; /*!< OTFDEC region start address */ 00058 00059 uint32_t EndAddress; /*!< OTFDEC region end address */ 00060 00061 uint16_t Version; /*!< OTFDEC region firmware version */ 00062 00063 }OTFDEC_RegionConfigTypeDef; 00064 00065 /** 00066 * @} 00067 */ 00068 00069 /** @defgroup OTFDEC_Exported_Types_Group2 OTFDEC Peripheral handle definitions 00070 * @{ 00071 */ 00072 00073 /** 00074 * @brief OTFDEC states structure definition 00075 */ 00076 typedef enum 00077 { 00078 HAL_OTFDEC_STATE_RESET = 0x00U, /*!< OTFDEC not yet initialized or disabled */ 00079 HAL_OTFDEC_STATE_READY = 0x01U, /*!< OTFDEC initialized and ready for use */ 00080 HAL_OTFDEC_STATE_BUSY = 0x02U, /*!< OTFDEC internal processing is ongoing */ 00081 }HAL_OTFDEC_StateTypeDef; 00082 00083 /** 00084 * @brief OTFDEC handle structure definition 00085 */ 00086 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1) 00087 typedef struct __OTFDEC_HandleTypeDef 00088 #else 00089 typedef struct 00090 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */ 00091 { 00092 OTFDEC_TypeDef *Instance; /*!< OTFDEC registers base address */ 00093 00094 HAL_OTFDEC_StateTypeDef State; /*!< OTFDEC state */ 00095 00096 HAL_LockTypeDef Lock; /*!< OTFDEC locking object */ 00097 00098 __IO uint32_t ErrorCode; /*!< OTFDEC error code */ 00099 00100 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1) 00101 void (* ErrorCallback)(struct __OTFDEC_HandleTypeDef *hotfdec); /*!< OTFDEC error callback */ 00102 00103 void (* MspInitCallback)(struct __OTFDEC_HandleTypeDef *hotfdec); /*!< OTFDEC Msp Init callback */ 00104 00105 void (* MspDeInitCallback)(struct __OTFDEC_HandleTypeDef *hotfdec); /*!< OTFDEC Msp DeInit callback */ 00106 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */ 00107 00108 }OTFDEC_HandleTypeDef; 00109 00110 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1) 00111 /** 00112 * @brief HAL OTFDEC Callback ID enumeration definition 00113 */ 00114 typedef enum 00115 { 00116 HAL_OTFDEC_ERROR_CB_ID = 0x00U, /*!< OTFDEC error callback ID */ 00117 HAL_OTFDEC_MSPINIT_CB_ID = 0x01U, /*!< OTFDEC Msp DeInit callback ID */ 00118 HAL_OTFDEC_MSPDEINIT_CB_ID = 0x02U /*!< OTFDEC Msp DeInit callback ID */ 00119 } HAL_OTFDEC_CallbackIDTypeDef; 00120 00121 /** 00122 * @brief HAL OTFDEC Callback pointer definition 00123 */ 00124 typedef void (*pOTFDEC_CallbackTypeDef)(OTFDEC_HandleTypeDef *hotfdec); /*!< pointer to a OTFDEC callback function */ 00125 00126 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */ 00127 00128 /** 00129 * @} 00130 */ 00131 00132 /** 00133 * @} 00134 */ 00135 00136 /* Exported constants --------------------------------------------------------*/ 00137 /** @defgroup OTFDEC_Exported_Constants OTFDEC Exported Constants 00138 * @{ 00139 */ 00140 00141 /** @defgroup OTFDEC_Interrupts OTFDEC Interrupts 00142 * @{ 00143 */ 00144 #define OTFDEC_SEC_ERROR_INT (OTFDEC_IER_SEIE ) /*!< OTFDEC security error interrupt */ 00145 #define OTFDEC_EXE_ERROR_INT ( OTFDEC_IER_XONEIE ) /*!< OTFDEC execution error interrupt */ 00146 #define OTFDEC_KEY_ERROR_INT ( OTFDEC_IER_KEIE) /*!< OTFDEC key error interrupt */ 00147 #define OTFDEC_SEC_EXE_ERROR_INT (OTFDEC_IER_SEIE|OTFDEC_IER_XONEIE ) /*!< OTFDEC security and execution errors interrupts */ 00148 #define OTFDEC_SEC_KEY_ERROR_INT (OTFDEC_IER_SEIE| OTFDEC_IER_KEIE) /*!< OTFDEC security and key errors interrupts */ 00149 #define OTFDEC_EXE_KEY_ERROR_INT ( OTFDEC_IER_XONEIE|OTFDEC_IER_KEIE) /*!< OTFDEC execution and key errors interrupts */ 00150 #define OTFDEC_ALL_INT (OTFDEC_IER_SEIE|OTFDEC_IER_XONEIE|OTFDEC_IER_KEIE) /*!< OTFDEC all interrupts */ 00151 /** 00152 * @} 00153 */ 00154 00155 /** @defgroup OTFDEC_Region_Enable OTFDEC Region Enable 00156 * @{ 00157 */ 00158 #define OTFDEC_REG_CONFIGR_REG_DISABLE 0x00000000U /*!< OTFDEC region encryption or on-the-fly decryption disable */ 00159 #define OTFDEC_REG_CONFIGR_REG_ENABLE OTFDEC_REG_CONFIGR_REG_EN /*!< OTFDEC region encryption or on-the-fly decryption enable */ 00160 /** 00161 * @} 00162 */ 00163 00164 /** @defgroup OTFDEC_Region_Configuration_Lock OTFDEC Region Configuration Lock 00165 * @{ 00166 */ 00167 #define OTFDEC_REG_CONFIGR_LOCK_DISABLE 0x00000000U /*!< OTFDEC region configuration lock disable */ 00168 #define OTFDEC_REG_CONFIGR_LOCK_ENABLE OTFDEC_REG_CONFIGR_CONFIGLOCK /*!< OTFDEC region configuration lock enable */ 00169 /** 00170 * @} 00171 */ 00172 00173 /** @defgroup OTFDEC_Region_Operating_Mode OTFDEC Region Operating Mode 00174 * @{ 00175 */ 00176 #define OTFDEC_REG_MODE_INSTRUCTION_ACCESSES_ONLY 0x00000000U /*!< Only instruction accesses are decrypted */ 00177 #define OTFDEC_REG_MODE_DATA_ACCESSES_ONLY OTFDEC_REG_CONFIGR_MODE_0 /*!< Only data accesses are decrypted */ 00178 #define OTFDEC_REG_MODE_INSTRUCTION_OR_DATA_ACCESSES OTFDEC_REG_CONFIGR_MODE_1 /*!< All read accesses are decrypted */ 00179 #define OTFDEC_REG_MODE_INSTRUCTION_ACCESSES_ONLY_WITH_CIPHER OTFDEC_REG_CONFIGR_MODE /*!< Only instruction accesses are decrypted with proprietary cipher activated */ 00180 /** 00181 * @} 00182 */ 00183 00184 /** @defgroup OTFDEC_Error_Definition OTFDEC Error Definition 00185 * @{ 00186 */ 00187 #define HAL_OTFDEC_ERROR_NONE ((uint32_t)0x00000000U) /*!< No error */ 00188 #define HAL_OTFDEC_SECURITY_ERROR ((uint32_t)0x00000001U) /*!< Security error */ 00189 #define HAL_OTFDEC_EXECUTE_ERROR ((uint32_t)0x00000002U) /*!< Execute-only Execute-Never error */ 00190 #define HAL_OTFDEC_KEY_ERROR ((uint32_t)0x00000004U) /*!< Key error */ 00191 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1) 00192 #define HAL_OTFDEC_ERROR_INVALID_CALLBACK ((uint32_t)0x00000008U) /*!< Invalid Callback error */ 00193 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */ 00194 /** 00195 * @} 00196 */ 00197 00198 /** @defgroup OTFDEC_Regions_Index OTFDEC Regions Index 00199 * @{ 00200 */ 00201 #define OTFDEC_REGION1 ((uint32_t)0x00000000U) /*!< OTFDEC region 1 */ 00202 #define OTFDEC_REGION2 ((uint32_t)0x00000001U) /*!< OTFDEC region 2 */ 00203 #define OTFDEC_REGION3 ((uint32_t)0x00000002U) /*!< OTFDEC region 3 */ 00204 #define OTFDEC_REGION4 ((uint32_t)0x00000003U) /*!< OTFDEC region 4 */ 00205 /** 00206 * @} 00207 */ 00208 00209 /** 00210 * @} 00211 */ 00212 00213 /* Exported macro ------------------------------------------------------------*/ 00214 /** @defgroup OTFDEC_Exported_Macros OTFDEC Exported Macros 00215 * @{ 00216 */ 00217 00218 /** @brief Reset OTFDEC handle state. 00219 * @param __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains 00220 * the configuration information for OTFDEC module 00221 * @retval None 00222 */ 00223 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1) 00224 #define __HAL_OTFDEC_RESET_HANDLE_STATE(__HANDLE__) \ 00225 do{ \ 00226 (__HANDLE__)->State = HAL_OTFDEC_STATE_RESET; \ 00227 (__HANDLE__)->MspInitCallback = NULL; \ 00228 (__HANDLE__)->MspDeInitCallback = NULL; \ 00229 } while(0) 00230 #else 00231 #define __HAL_OTFDEC_RESET_HANDLE_STATE(__HANDLE__) \ 00232 ((__HANDLE__)->State = HAL_OTFDEC_STATE_RESET) 00233 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */ 00234 00235 /** 00236 * @brief Enable OTFDEC peripheral interrupts combination 00237 * @param __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains 00238 * the configuration information for OTFDEC module 00239 * @param __INTERRUPT__ mask on enabled interrupts 00240 * This parameter can be one of the following values: 00241 * @arg @ref OTFDEC_SEC_ERROR_INT OTFDEC security error interrupt 00242 * @arg @ref OTFDEC_EXE_ERROR_INT OTFDEC execution error interrupt 00243 * @arg @ref OTFDEC_KEY_ERROR_INT OTFDEC key error interrupt 00244 * @arg @ref OTFDEC_SEC_EXE_ERROR_INT OTFDEC security and execution errors interrupts 00245 * @arg @ref OTFDEC_SEC_KEY_ERROR_INT OTFDEC security and key errors interrupts 00246 * @arg @ref OTFDEC_EXE_KEY_ERROR_INT OTFDEC execution and key errors interrupts 00247 * @arg @ref OTFDEC_ALL_INT OTFDEC all interrupts 00248 * @retval None 00249 */ 00250 #define __HAL_OTFDEC_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT(((__HANDLE__)->Instance->IER), (__INTERRUPT__)) 00251 00252 /** 00253 * @brief Disable OTFDEC peripheral interrupts combination 00254 * @param __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains 00255 * the configuration information for OTFDEC module 00256 * @param __INTERRUPT__ mask on disabled interrupts 00257 * This parameter can be one of the following values: 00258 * @arg @ref OTFDEC_SEC_ERROR_INT OTFDEC security error interrupt 00259 * @arg @ref OTFDEC_EXE_ERROR_INT OTFDEC execution error interrupt 00260 * @arg @ref OTFDEC_KEY_ERROR_INT OTFDEC key error interrupt 00261 * @arg @ref OTFDEC_SEC_EXE_ERROR_INT OTFDEC security and execution errors interrupts 00262 * @arg @ref OTFDEC_SEC_KEY_ERROR_INT OTFDEC security and key errors interrupts 00263 * @arg @ref OTFDEC_EXE_KEY_ERROR_INT OTFDEC execution and key errors interrupts 00264 * @arg @ref OTFDEC_ALL_INT OTFDEC all interrupts 00265 * @retval None 00266 */ 00267 #define __HAL_OTFDEC_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT(((__HANDLE__)->Instance->IER), (__INTERRUPT__)) 00268 00269 /** @brief Check whether the specified combination of OTFDEC interrupt flags is set or not. 00270 * @param __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains 00271 * the configuration information for OTFDEC module 00272 * @param __FLAG__ mask on combination of interrupts flags 00273 * This parameter can be one of the following values: 00274 * @arg @ref OTFDEC_SEC_ERROR_INT OTFDEC security error interrupt flag 00275 * @arg @ref OTFDEC_EXE_ERROR_INT OTFDEC execution error interrupt flag 00276 * @arg @ref OTFDEC_KEY_ERROR_INT OTFDEC key error interrupt flag 00277 * @arg @ref OTFDEC_SEC_EXE_ERROR_INT OTFDEC security and execution errors interrupts flags 00278 * @arg @ref OTFDEC_SEC_KEY_ERROR_INT OTFDEC security and key errors interrupts flags 00279 * @arg @ref OTFDEC_EXE_KEY_ERROR_INT OTFDEC execution and key errors interrupts flag 00280 * @arg @ref OTFDEC_ALL_INT OTFDEC all interrupts flags 00281 * @retval The state of __FLAG__ (TRUE or FALSE). 00282 */ 00283 #define __HAL_OTFDEC_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__)) 00284 00285 /** @brief Clear the specified combination of OTFDEC interrupt flags. 00286 * @param __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains 00287 * the configuration information for OTFDEC module 00288 * @param __FLAG__ mask on combination of interrupts flags 00289 * This parameter can be one of the following values: 00290 * @arg @ref OTFDEC_SEC_ERROR_INT OTFDEC security error interrupt flag 00291 * @arg @ref OTFDEC_EXE_ERROR_INT OTFDEC execution error interrupt flag 00292 * @arg @ref OTFDEC_KEY_ERROR_INT OTFDEC key error interrupt flag 00293 * @arg @ref OTFDEC_SEC_EXE_ERROR_INT OTFDEC security and execution errors interrupts flags 00294 * @arg @ref OTFDEC_SEC_KEY_ERROR_INT OTFDEC security and key errors interrupts flags 00295 * @arg @ref OTFDEC_EXE_KEY_ERROR_INT OTFDEC execution and key errors interrupts flag 00296 * @arg @ref OTFDEC_ALL_INT OTFDEC all interrupts flags 00297 * @retval None 00298 */ 00299 #define __HAL_OTFDEC_CLEAR_FLAG(__HANDLE__, __FLAG__) SET_BIT((__HANDLE__)->Instance->ICR, (__FLAG__)) 00300 00301 /** 00302 * @} 00303 */ 00304 00305 /* Exported functions --------------------------------------------------------*/ 00306 /** @defgroup OTFDEC_Exported_Functions OTFDEC Exported Functions 00307 * @{ 00308 */ 00309 00310 /** @addtogroup OTFDEC_Exported_Functions_Group1 Initialization and de-initialization functions 00311 * @{ 00312 */ 00313 HAL_StatusTypeDef HAL_OTFDEC_Init(OTFDEC_HandleTypeDef *hotfdec); 00314 HAL_StatusTypeDef HAL_OTFDEC_DeInit(OTFDEC_HandleTypeDef *hotfdec); 00315 void HAL_OTFDEC_MspInit(OTFDEC_HandleTypeDef *hotfdec); 00316 void HAL_OTFDEC_MspDeInit(OTFDEC_HandleTypeDef *hotfdec); 00317 00318 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1) 00319 /* Callbacks Register/UnRegister functions ***********************************/ 00320 HAL_StatusTypeDef HAL_OTFDEC_RegisterCallback(OTFDEC_HandleTypeDef *hotfdec, HAL_OTFDEC_CallbackIDTypeDef CallbackID, 00321 pOTFDEC_CallbackTypeDef pCallback); 00322 HAL_StatusTypeDef HAL_OTFDEC_UnRegisterCallback(OTFDEC_HandleTypeDef *hotfdec, HAL_OTFDEC_CallbackIDTypeDef CallbackID); 00323 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */ 00324 /** 00325 * @} 00326 */ 00327 00328 00329 /** @addtogroup OTFDEC_Exported_Functions_Group2 OTFDEC IRQ handler management 00330 * @{ 00331 */ 00332 void HAL_OTFDEC_IRQHandler(OTFDEC_HandleTypeDef *hotfdec); 00333 void HAL_OTFDEC_ErrorCallback(OTFDEC_HandleTypeDef *hotfdec); 00334 /** 00335 * @} 00336 */ 00337 00338 /** @addtogroup OTFDEC_Exported_Functions_Group3 Peripheral Control functions 00339 * @{ 00340 */ 00341 HAL_StatusTypeDef HAL_OTFDEC_RegionKeyLock(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex); 00342 HAL_StatusTypeDef HAL_OTFDEC_RegionSetKey(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex, uint32_t *pKey); 00343 HAL_StatusTypeDef HAL_OTFDEC_RegionSetMode(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex, uint32_t mode); 00344 HAL_StatusTypeDef HAL_OTFDEC_RegionConfig(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex, 00345 OTFDEC_RegionConfigTypeDef *Config, uint32_t lock); 00346 uint32_t HAL_OTFDEC_KeyCRCComputation(uint32_t *pKey); 00347 HAL_StatusTypeDef HAL_OTFDEC_RegionEnable(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex); 00348 HAL_StatusTypeDef HAL_OTFDEC_RegionDisable(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex); 00349 /** 00350 * @} 00351 */ 00352 00353 /** @addtogroup @addtogroup OTFDEC_Exported_Functions_Group4 Peripheral State and Status functions 00354 * @{ 00355 */ 00356 HAL_OTFDEC_StateTypeDef HAL_OTFDEC_GetState(OTFDEC_HandleTypeDef *hotfdec); 00357 uint32_t HAL_OTFDEC_RegionGetKeyCRC(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex); 00358 HAL_StatusTypeDef HAL_OTFDEC_RegionGetConfig(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex, 00359 OTFDEC_RegionConfigTypeDef *Config); 00360 /** 00361 * @} 00362 */ 00363 00364 /** 00365 * @} 00366 */ 00367 00368 /* Private types -------------------------------------------------------------*/ 00369 /** @defgroup OTFDEC_Private_Types OTFDEC Private Types 00370 * @{ 00371 */ 00372 00373 /** 00374 * @} 00375 */ 00376 00377 /* Private variables ---------------------------------------------------------*/ 00378 /** @defgroup OTFDEC_Private_Variables OTFDEC Private Variables 00379 * @{ 00380 */ 00381 00382 /** 00383 * @} 00384 */ 00385 00386 /* Private constants ---------------------------------------------------------*/ 00387 /** @defgroup OTFDEC_Private_Constants OTFDEC Private Constants 00388 * @{ 00389 */ 00390 /** 00391 * @} 00392 */ 00393 00394 /* Private macros ------------------------------------------------------------*/ 00395 /** @defgroup OTFDEC_Private_Macros OTFDEC Private Macros 00396 * @{ 00397 */ 00398 00399 /** 00400 * @brief Verify the OTFDEC peripheral interrupts parameter. 00401 * @param __INT__ OTFDEC peripheral set of interrupts parameter 00402 * @retval SET (__INT__ is valid) or RESET (__INT__ is invalid) 00403 */ 00404 #define IS_OTFDEC_INTERRUPTS(__INT__) (((__INT__) == OTFDEC_SEC_ERROR_INT) || \ 00405 ((__INT__) == OTFDEC_EXE_ERROR_INT) || \ 00406 ((__INT__) == OTFDEC_KEY_ERROR_INT) || \ 00407 ((__INT__) == OTFDEC_SEC_EXE_ERROR_INT) || \ 00408 ((__INT__) == OTFDEC_SEC_KEY_ERROR_INT) || \ 00409 ((__INT__) == OTFDEC_EXE_KEY_ERROR_INT) || \ 00410 ((__INT__) == OTFDEC_ALL_INT) ) 00411 00412 /** 00413 * @brief Verify the OTFDEC region configuration lock parameter. 00414 * @param __LOCK__ OTFDEC region lock parameter. 00415 * @retval SET (__LOCK__ is valid) or RESET (__LOCK__ is invalid) 00416 */ 00417 #define IS_OTFDEC_REGION_CONFIG_LOCK(__LOCK__) (((__LOCK__) == OTFDEC_REG_CONFIGR_LOCK_DISABLE) || \ 00418 ((__LOCK__) == OTFDEC_REG_CONFIGR_LOCK_ENABLE) ) 00419 00420 /** 00421 * @brief Verify the OTFDEC region operating mode. 00422 * @param __MODE__ OTFDEC region operating mode parameter. 00423 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) 00424 */ 00425 #define IS_OTFDEC_REGION_OPERATING_MODE(__MODE__) (((__MODE__) == OTFDEC_REG_MODE_INSTRUCTION_ACCESSES_ONLY) || \ 00426 ((__MODE__) == OTFDEC_REG_MODE_DATA_ACCESSES_ONLY) || \ 00427 ((__MODE__) == OTFDEC_REG_MODE_INSTRUCTION_OR_DATA_ACCESSES) || \ 00428 ((__MODE__) == OTFDEC_REG_MODE_INSTRUCTION_ACCESSES_ONLY_WITH_CIPHER)) 00429 00430 /** 00431 * @brief Verify the OTFDEC region index. 00432 * @param __INDEX__ OTFDEC region index 00433 * @retval SET (__INDEX__ is valid) or RESET (__INDEX__ is invalid) 00434 */ 00435 #define IS_OTFDEC_REGIONINDEX(__INDEX__) (((__INDEX__) == OTFDEC_REGION1) || \ 00436 ((__INDEX__) == OTFDEC_REGION2) || \ 00437 ((__INDEX__) == OTFDEC_REGION3) || \ 00438 ((__INDEX__) == OTFDEC_REGION4) ) 00439 00440 /** 00441 * @brief Verify the OTFDEC configuration attributes. 00442 * @param __ATTRIBUTE__ OTFDEC region index 00443 * @retval SET (__ATTRIBUTE__ is valid) or RESET (__ATTRIBUTE__ is invalid) 00444 */ 00445 #define IS_OTFDEC_ATTRIBUTE(__ATTRIBUTE__) (((__ATTRIBUTE__) == OTFDEC_ATTRIBUTE_PRIV) || \ 00446 ((__ATTRIBUTE__) == OTFDEC_ATTRIBUTE_NPRIV) ) 00447 00448 /** 00449 * @} 00450 */ 00451 00452 /* Private functions ---------------------------------------------------------*/ 00453 /** @defgroup OTFDEC_Private_Functions OTFDEC Private Functions 00454 * @{ 00455 */ 00456 00457 /** 00458 * @} 00459 */ 00460 00461 /** 00462 * @} 00463 */ 00464 00465 #endif /* OTFDEC1 */ 00466 00467 /** 00468 * @} 00469 */ 00470 00471 #ifdef __cplusplus 00472 } 00473 #endif 00474 00475 #endif /* STM32H7xx_HAL_OTFDEC_H */ 00476 00477