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