Subversion Repositories LedShow

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32f1xx_hal_sram.h
4
  * @author  MCD Application Team
5
  * @brief   Header file of SRAM HAL module.
6
  ******************************************************************************
7
  * @attention
8
  *
9 mjames 9
  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
10
  * All rights reserved.</center></h2>
2 mjames 11
  *
9 mjames 12
  * This software component is licensed by ST under BSD 3-Clause license,
13
  * the "License"; You may not use this file except in compliance with the
14
  * License. You may obtain a copy of the License at:
15
  *                       opensource.org/licenses/BSD-3-Clause
2 mjames 16
  *
17
  ******************************************************************************
9 mjames 18
  */
2 mjames 19
 
20
/* Define to prevent recursive inclusion -------------------------------------*/
9 mjames 21
#ifndef STM32F1xx_HAL_SRAM_H
22
#define STM32F1xx_HAL_SRAM_H
2 mjames 23
 
24
#ifdef __cplusplus
9 mjames 25
extern "C" {
2 mjames 26
#endif
27
 
9 mjames 28
#if defined FSMC_BANK1
29
 
2 mjames 30
/* Includes ------------------------------------------------------------------*/
31
#include "stm32f1xx_ll_fsmc.h"
32
 
33
/** @addtogroup STM32F1xx_HAL_Driver
34
  * @{
35
  */
36
/** @addtogroup SRAM
37
  * @{
9 mjames 38
  */
2 mjames 39
 
40
/* Exported typedef ----------------------------------------------------------*/
41
 
42
/** @defgroup SRAM_Exported_Types SRAM Exported Types
43
  * @{
9 mjames 44
  */
45
/**
46
  * @brief  HAL SRAM State structures definition
47
  */
2 mjames 48
typedef enum
49
{
50
  HAL_SRAM_STATE_RESET     = 0x00U,  /*!< SRAM not yet initialized or disabled           */
51
  HAL_SRAM_STATE_READY     = 0x01U,  /*!< SRAM initialized and ready for use             */
52
  HAL_SRAM_STATE_BUSY      = 0x02U,  /*!< SRAM internal process is ongoing               */
53
  HAL_SRAM_STATE_ERROR     = 0x03U,  /*!< SRAM error state                               */
54
  HAL_SRAM_STATE_PROTECTED = 0x04U   /*!< SRAM peripheral NORSRAM device write protected */
55
 
9 mjames 56
} HAL_SRAM_StateTypeDef;
57
 
58
/**
59
  * @brief  SRAM handle Structure definition
60
  */
61
#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
62
typedef struct __SRAM_HandleTypeDef
63
#else
2 mjames 64
typedef struct
9 mjames 65
#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
2 mjames 66
{
9 mjames 67
  FSMC_NORSRAM_TypeDef           *Instance;  /*!< Register base address                        */
68
 
2 mjames 69
  FSMC_NORSRAM_EXTENDED_TypeDef  *Extended;  /*!< Extended mode register base address          */
9 mjames 70
 
2 mjames 71
  FSMC_NORSRAM_InitTypeDef       Init;       /*!< SRAM device control configuration parameters */
72
 
9 mjames 73
  HAL_LockTypeDef               Lock;       /*!< SRAM locking object                          */
74
 
2 mjames 75
  __IO HAL_SRAM_StateTypeDef    State;      /*!< SRAM device access state                     */
9 mjames 76
 
2 mjames 77
  DMA_HandleTypeDef             *hdma;      /*!< Pointer DMA handler                          */
78
 
9 mjames 79
#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
80
  void (* MspInitCallback)(struct __SRAM_HandleTypeDef *hsram);               /*!< SRAM Msp Init callback              */
81
  void (* MspDeInitCallback)(struct __SRAM_HandleTypeDef *hsram);             /*!< SRAM Msp DeInit callback            */
82
  void (* DmaXferCpltCallback)(DMA_HandleTypeDef *hdma);                      /*!< SRAM DMA Xfer Complete callback     */
83
  void (* DmaXferErrorCallback)(DMA_HandleTypeDef *hdma);                     /*!< SRAM DMA Xfer Error callback        */
84
#endif
85
} SRAM_HandleTypeDef;
86
 
87
#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
2 mjames 88
/**
9 mjames 89
  * @brief  HAL SRAM Callback ID enumeration definition
90
  */
91
typedef enum
92
{
93
  HAL_SRAM_MSP_INIT_CB_ID       = 0x00U,  /*!< SRAM MspInit Callback ID           */
94
  HAL_SRAM_MSP_DEINIT_CB_ID     = 0x01U,  /*!< SRAM MspDeInit Callback ID         */
95
  HAL_SRAM_DMA_XFER_CPLT_CB_ID  = 0x02U,  /*!< SRAM DMA Xfer Complete Callback ID */
96
  HAL_SRAM_DMA_XFER_ERR_CB_ID   = 0x03U   /*!< SRAM DMA Xfer Complete Callback ID */
97
} HAL_SRAM_CallbackIDTypeDef;
98
 
99
/**
100
  * @brief  HAL SRAM Callback pointer definition
101
  */
102
typedef void (*pSRAM_CallbackTypeDef)(SRAM_HandleTypeDef *hsram);
103
typedef void (*pSRAM_DmaCallbackTypeDef)(DMA_HandleTypeDef *hdma);
104
#endif
105
/**
2 mjames 106
  * @}
9 mjames 107
  */
2 mjames 108
 
9 mjames 109
/* Exported constants --------------------------------------------------------*/
2 mjames 110
/* Exported macro ------------------------------------------------------------*/
111
 
112
/** @defgroup SRAM_Exported_Macros SRAM Exported Macros
113
  * @{
9 mjames 114
  */
2 mjames 115
 
116
/** @brief Reset SRAM handle state
9 mjames 117
  * @param  __HANDLE__ SRAM handle
2 mjames 118
  * @retval None
119
  */
9 mjames 120
#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
121
#define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__)         do {                                             \
122
                                                               (__HANDLE__)->State = HAL_SRAM_STATE_RESET; \
123
                                                               (__HANDLE__)->MspInitCallback = NULL;       \
124
                                                               (__HANDLE__)->MspDeInitCallback = NULL;     \
125
                                                             } while(0)
126
#else
2 mjames 127
#define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SRAM_STATE_RESET)
9 mjames 128
#endif
2 mjames 129
 
130
/**
131
  * @}
9 mjames 132
  */
2 mjames 133
 
134
/* Exported functions --------------------------------------------------------*/
9 mjames 135
/** @addtogroup SRAM_Exported_Functions SRAM Exported Functions
136
  * @{
137
  */
2 mjames 138
 
9 mjames 139
/** @addtogroup SRAM_Exported_Functions_Group1 Initialization and de-initialization functions
140
  * @{
141
  */
2 mjames 142
 
9 mjames 143
/* Initialization/de-initialization functions  ********************************/
144
HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FSMC_NORSRAM_TimingTypeDef *Timing,
145
                                FSMC_NORSRAM_TimingTypeDef *ExtTiming);
2 mjames 146
HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram);
9 mjames 147
void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
148
void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);
2 mjames 149
 
150
/**
151
  * @}
9 mjames 152
  */
2 mjames 153
 
9 mjames 154
/** @addtogroup SRAM_Exported_Functions_Group2 Input Output and memory control functions
155
  * @{
156
  */
2 mjames 157
 
9 mjames 158
/* I/O operation functions  ***************************************************/
159
HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer,
160
                                   uint32_t BufferSize);
161
HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer,
162
                                    uint32_t BufferSize);
163
HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer,
164
                                    uint32_t BufferSize);
165
HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer,
166
                                     uint32_t BufferSize);
167
HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
168
                                    uint32_t BufferSize);
169
HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
170
                                     uint32_t BufferSize);
171
HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
172
                                    uint32_t BufferSize);
173
HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
174
                                     uint32_t BufferSize);
175
 
176
void HAL_SRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
177
void HAL_SRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
178
 
179
#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
180
/* SRAM callback registering/unregistering */
181
HAL_StatusTypeDef HAL_SRAM_RegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
182
                                            pSRAM_CallbackTypeDef pCallback);
183
HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId);
184
HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
185
                                               pSRAM_DmaCallbackTypeDef pCallback);
186
#endif
187
 
2 mjames 188
/**
189
  * @}
9 mjames 190
  */
2 mjames 191
 
9 mjames 192
/** @addtogroup SRAM_Exported_Functions_Group3 Control functions
193
  * @{
194
  */
195
 
196
/* SRAM Control functions  ****************************************************/
2 mjames 197
HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable(SRAM_HandleTypeDef *hsram);
198
HAL_StatusTypeDef HAL_SRAM_WriteOperation_Disable(SRAM_HandleTypeDef *hsram);
199
 
200
/**
201
  * @}
9 mjames 202
  */
2 mjames 203
 
9 mjames 204
/** @addtogroup SRAM_Exported_Functions_Group4 Peripheral State functions
205
  * @{
206
  */
207
 
208
/* SRAM  State functions ******************************************************/
2 mjames 209
HAL_SRAM_StateTypeDef HAL_SRAM_GetState(SRAM_HandleTypeDef *hsram);
210
 
211
/**
212
  * @}
9 mjames 213
  */
2 mjames 214
 
215
/**
216
  * @}
9 mjames 217
  */
2 mjames 218
 
219
/**
220
  * @}
9 mjames 221
  */
2 mjames 222
 
223
/**
224
  * @}
225
  */
9 mjames 226
 
227
#endif /* FSMC_BANK1 */
228
 
2 mjames 229
#ifdef __cplusplus
230
}
231
#endif
232
 
9 mjames 233
#endif /* STM32F1xx_HAL_SRAM_H */
2 mjames 234
 
235
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/