STM32H735xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32h7xx_hal_sram.h 00004 * @author MCD Application Team 00005 * @brief Header file of SRAM HAL module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * Copyright (c) 2017 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_SRAM_H 00021 #define STM32H7xx_HAL_SRAM_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 00028 /* Includes ------------------------------------------------------------------*/ 00029 #include "stm32h7xx_ll_fmc.h" 00030 00031 /** @addtogroup STM32H7xx_HAL_Driver 00032 * @{ 00033 */ 00034 /** @addtogroup SRAM 00035 * @{ 00036 */ 00037 00038 /* Exported typedef ----------------------------------------------------------*/ 00039 00040 /** @defgroup SRAM_Exported_Types SRAM Exported Types 00041 * @{ 00042 */ 00043 /** 00044 * @brief HAL SRAM State structures definition 00045 */ 00046 typedef enum 00047 { 00048 HAL_SRAM_STATE_RESET = 0x00U, /*!< SRAM not yet initialized or disabled */ 00049 HAL_SRAM_STATE_READY = 0x01U, /*!< SRAM initialized and ready for use */ 00050 HAL_SRAM_STATE_BUSY = 0x02U, /*!< SRAM internal process is ongoing */ 00051 HAL_SRAM_STATE_ERROR = 0x03U, /*!< SRAM error state */ 00052 HAL_SRAM_STATE_PROTECTED = 0x04U /*!< SRAM peripheral NORSRAM device write protected */ 00053 00054 } HAL_SRAM_StateTypeDef; 00055 00056 /** 00057 * @brief SRAM handle Structure definition 00058 */ 00059 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1) 00060 typedef struct __SRAM_HandleTypeDef 00061 #else 00062 typedef struct 00063 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */ 00064 { 00065 FMC_NORSRAM_TypeDef *Instance; /*!< Register base address */ 00066 00067 FMC_NORSRAM_EXTENDED_TypeDef *Extended; /*!< Extended mode register base address */ 00068 00069 FMC_NORSRAM_InitTypeDef Init; /*!< SRAM device control configuration parameters */ 00070 00071 HAL_LockTypeDef Lock; /*!< SRAM locking object */ 00072 00073 __IO HAL_SRAM_StateTypeDef State; /*!< SRAM device access state */ 00074 00075 MDMA_HandleTypeDef *hmdma; /*!< Pointer DMA handler */ 00076 00077 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1) 00078 void (* MspInitCallback)(struct __SRAM_HandleTypeDef *hsram); /*!< SRAM Msp Init callback */ 00079 void (* MspDeInitCallback)(struct __SRAM_HandleTypeDef *hsram); /*!< SRAM Msp DeInit callback */ 00080 void (* DmaXferCpltCallback)(MDMA_HandleTypeDef *hmdma); /*!< SRAM DMA Xfer Complete callback */ 00081 void (* DmaXferErrorCallback)(MDMA_HandleTypeDef *hmdma); /*!< SRAM DMA Xfer Error callback */ 00082 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */ 00083 } SRAM_HandleTypeDef; 00084 00085 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1) 00086 /** 00087 * @brief HAL SRAM Callback ID enumeration definition 00088 */ 00089 typedef enum 00090 { 00091 HAL_SRAM_MSP_INIT_CB_ID = 0x00U, /*!< SRAM MspInit Callback ID */ 00092 HAL_SRAM_MSP_DEINIT_CB_ID = 0x01U, /*!< SRAM MspDeInit Callback ID */ 00093 HAL_SRAM_DMA_XFER_CPLT_CB_ID = 0x02U, /*!< SRAM DMA Xfer Complete Callback ID */ 00094 HAL_SRAM_DMA_XFER_ERR_CB_ID = 0x03U /*!< SRAM DMA Xfer Complete Callback ID */ 00095 } HAL_SRAM_CallbackIDTypeDef; 00096 00097 /** 00098 * @brief HAL SRAM Callback pointer definition 00099 */ 00100 typedef void (*pSRAM_CallbackTypeDef)(SRAM_HandleTypeDef *hsram); 00101 typedef void (*pSRAM_DmaCallbackTypeDef)(MDMA_HandleTypeDef *hmdma); 00102 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */ 00103 /** 00104 * @} 00105 */ 00106 00107 /* Exported constants --------------------------------------------------------*/ 00108 /* Exported macro ------------------------------------------------------------*/ 00109 00110 /** @defgroup SRAM_Exported_Macros SRAM Exported Macros 00111 * @{ 00112 */ 00113 00114 /** @brief Reset SRAM handle state 00115 * @param __HANDLE__ SRAM handle 00116 * @retval None 00117 */ 00118 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1) 00119 #define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__) do { \ 00120 (__HANDLE__)->State = HAL_SRAM_STATE_RESET; \ 00121 (__HANDLE__)->MspInitCallback = NULL; \ 00122 (__HANDLE__)->MspDeInitCallback = NULL; \ 00123 } while(0) 00124 #else 00125 #define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SRAM_STATE_RESET) 00126 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */ 00127 00128 /** 00129 * @} 00130 */ 00131 00132 /* Exported functions --------------------------------------------------------*/ 00133 /** @addtogroup SRAM_Exported_Functions SRAM Exported Functions 00134 * @{ 00135 */ 00136 00137 /** @addtogroup SRAM_Exported_Functions_Group1 Initialization and de-initialization functions 00138 * @{ 00139 */ 00140 00141 /* Initialization/de-initialization functions ********************************/ 00142 HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing, 00143 FMC_NORSRAM_TimingTypeDef *ExtTiming); 00144 HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram); 00145 void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram); 00146 void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram); 00147 00148 /** 00149 * @} 00150 */ 00151 00152 /** @addtogroup SRAM_Exported_Functions_Group2 Input Output and memory control functions 00153 * @{ 00154 */ 00155 00156 /* I/O operation functions ***************************************************/ 00157 HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer, 00158 uint32_t BufferSize); 00159 HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer, 00160 uint32_t BufferSize); 00161 HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer, 00162 uint32_t BufferSize); 00163 HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer, 00164 uint32_t BufferSize); 00165 HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, 00166 uint32_t BufferSize); 00167 HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, 00168 uint32_t BufferSize); 00169 HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, 00170 uint32_t BufferSize); 00171 HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, 00172 uint32_t BufferSize); 00173 00174 void HAL_SRAM_DMA_XferCpltCallback(MDMA_HandleTypeDef *hmdma); 00175 void HAL_SRAM_DMA_XferErrorCallback(MDMA_HandleTypeDef *hmdma); 00176 00177 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1) 00178 /* SRAM callback registering/unregistering */ 00179 HAL_StatusTypeDef HAL_SRAM_RegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId, 00180 pSRAM_CallbackTypeDef pCallback); 00181 HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId); 00182 HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId, 00183 pSRAM_DmaCallbackTypeDef pCallback); 00184 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */ 00185 00186 /** 00187 * @} 00188 */ 00189 00190 /** @addtogroup SRAM_Exported_Functions_Group3 Control functions 00191 * @{ 00192 */ 00193 00194 /* SRAM Control functions ****************************************************/ 00195 HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable(SRAM_HandleTypeDef *hsram); 00196 HAL_StatusTypeDef HAL_SRAM_WriteOperation_Disable(SRAM_HandleTypeDef *hsram); 00197 00198 /** 00199 * @} 00200 */ 00201 00202 /** @addtogroup SRAM_Exported_Functions_Group4 Peripheral State functions 00203 * @{ 00204 */ 00205 00206 /* SRAM State functions ******************************************************/ 00207 HAL_SRAM_StateTypeDef HAL_SRAM_GetState(SRAM_HandleTypeDef *hsram); 00208 00209 /** 00210 * @} 00211 */ 00212 00213 /** 00214 * @} 00215 */ 00216 00217 /** 00218 * @} 00219 */ 00220 00221 /** 00222 * @} 00223 */ 00224 00225 00226 #ifdef __cplusplus 00227 } 00228 #endif 00229 00230 #endif /* STM32H7xx_HAL_SRAM_H */