STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
stm32f4xx_hal_sram.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32F4xx_HAL_SRAM_H
21#define STM32F4xx_HAL_SRAM_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#if defined(FMC_Bank1) || defined(FSMC_Bank1)
28
29/* Includes ------------------------------------------------------------------*/
30#if defined(FSMC_Bank1)
31#include "stm32f4xx_ll_fsmc.h"
32#else
33#include "stm32f4xx_ll_fmc.h"
34#endif /* FSMC_Bank1 */
35
43/* Exported typedef ----------------------------------------------------------*/
44
51typedef enum
52{
53 HAL_SRAM_STATE_RESET = 0x00U,
54 HAL_SRAM_STATE_READY = 0x01U,
55 HAL_SRAM_STATE_BUSY = 0x02U,
56 HAL_SRAM_STATE_ERROR = 0x03U,
57 HAL_SRAM_STATE_PROTECTED = 0x04U
59} HAL_SRAM_StateTypeDef;
60
64#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
65typedef struct __SRAM_HandleTypeDef
66#else
67typedef struct
68#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
69{
70 FMC_NORSRAM_TypeDef *Instance;
72 FMC_NORSRAM_EXTENDED_TypeDef *Extended;
74 FMC_NORSRAM_InitTypeDef Init;
76 HAL_LockTypeDef Lock;
78 __IO HAL_SRAM_StateTypeDef State;
80 DMA_HandleTypeDef *hdma;
82#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
83 void (* MspInitCallback)(struct __SRAM_HandleTypeDef *hsram);
84 void (* MspDeInitCallback)(struct __SRAM_HandleTypeDef *hsram);
85 void (* DmaXferCpltCallback)(DMA_HandleTypeDef *hdma);
86 void (* DmaXferErrorCallback)(DMA_HandleTypeDef *hdma);
87#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
88} SRAM_HandleTypeDef;
89
90#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
94typedef enum
95{
96 HAL_SRAM_MSP_INIT_CB_ID = 0x00U,
97 HAL_SRAM_MSP_DEINIT_CB_ID = 0x01U,
98 HAL_SRAM_DMA_XFER_CPLT_CB_ID = 0x02U,
99 HAL_SRAM_DMA_XFER_ERR_CB_ID = 0x03U
100} HAL_SRAM_CallbackIDTypeDef;
101
105typedef void (*pSRAM_CallbackTypeDef)(SRAM_HandleTypeDef *hsram);
106typedef void (*pSRAM_DmaCallbackTypeDef)(DMA_HandleTypeDef *hdma);
107#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
112/* Exported constants --------------------------------------------------------*/
113/* Exported macro ------------------------------------------------------------*/
114
123#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
124#define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__) do { \
125 (__HANDLE__)->State = HAL_SRAM_STATE_RESET; \
126 (__HANDLE__)->MspInitCallback = NULL; \
127 (__HANDLE__)->MspDeInitCallback = NULL; \
128 } while(0)
129#else
130#define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SRAM_STATE_RESET)
131#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
132
137/* Exported functions --------------------------------------------------------*/
146/* Initialization/de-initialization functions ********************************/
147HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing,
148 FMC_NORSRAM_TimingTypeDef *ExtTiming);
149HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram);
150void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
151void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);
152
161/* I/O operation functions ***************************************************/
162HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer,
163 uint32_t BufferSize);
164HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer,
165 uint32_t BufferSize);
166HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer,
167 uint32_t BufferSize);
168HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer,
169 uint32_t BufferSize);
170HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
171 uint32_t BufferSize);
172HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
173 uint32_t BufferSize);
174HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
175 uint32_t BufferSize);
176HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
177 uint32_t BufferSize);
178
179void HAL_SRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
180void HAL_SRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
181
182#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
183/* SRAM callback registering/unregistering */
184HAL_StatusTypeDef HAL_SRAM_RegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
185 pSRAM_CallbackTypeDef pCallback);
186HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId);
187HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
188 pSRAM_DmaCallbackTypeDef pCallback);
189#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
190
199/* SRAM Control functions ****************************************************/
200HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable(SRAM_HandleTypeDef *hsram);
201HAL_StatusTypeDef HAL_SRAM_WriteOperation_Disable(SRAM_HandleTypeDef *hsram);
202
211/* SRAM State functions ******************************************************/
212HAL_SRAM_StateTypeDef HAL_SRAM_GetState(const SRAM_HandleTypeDef *hsram);
213
230#endif /* FMC_Bank1 || FSMC_Bank1 */
231
232#ifdef __cplusplus
233}
234#endif
235
236#endif /* STM32F4xx_HAL_SRAM_H */
HAL_StatusTypeDef
HAL Status structures definition
HAL_LockTypeDef
HAL Lock structures definition
DMA handle Structure definition.