Subversion Repositories LedShow

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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.   * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
  10.   *
  11.   * Redistribution and use in source and binary forms, with or without modification,
  12.   * are permitted provided that the following conditions are met:
  13.   *   1. Redistributions of source code must retain the above copyright notice,
  14.   *      this list of conditions and the following disclaimer.
  15.   *   2. Redistributions in binary form must reproduce the above copyright notice,
  16.   *      this list of conditions and the following disclaimer in the documentation
  17.   *      and/or other materials provided with the distribution.
  18.   *   3. Neither the name of STMicroelectronics nor the names of its contributors
  19.   *      may be used to endorse or promote products derived from this software
  20.   *      without specific prior written permission.
  21.   *
  22.   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  23.   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  24.   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  25.   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  26.   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  27.   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  28.   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  29.   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  30.   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  31.   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32.   *
  33.   ******************************************************************************
  34.   */
  35.  
  36. /* Define to prevent recursive inclusion -------------------------------------*/
  37. #ifndef __STM32F1xx_HAL_SRAM_H
  38. #define __STM32F1xx_HAL_SRAM_H
  39.  
  40. #ifdef __cplusplus
  41.  extern "C" {
  42. #endif
  43.  
  44. /* Includes ------------------------------------------------------------------*/
  45. #include "stm32f1xx_ll_fsmc.h"
  46.  
  47. /** @addtogroup STM32F1xx_HAL_Driver
  48.   * @{
  49.   */
  50.  
  51. #if defined (STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG) || defined(STM32F103xG) || defined(STM32F100xE)
  52.  
  53. /** @addtogroup SRAM
  54.   * @{
  55.   */
  56.  
  57. /* Exported typedef ----------------------------------------------------------*/
  58.  
  59. /** @defgroup SRAM_Exported_Types SRAM Exported Types
  60.   * @{
  61.   */
  62. /**
  63.   * @brief  HAL SRAM State structures definition  
  64.   */
  65. typedef enum
  66. {
  67.   HAL_SRAM_STATE_RESET     = 0x00U,  /*!< SRAM not yet initialized or disabled           */
  68.   HAL_SRAM_STATE_READY     = 0x01U,  /*!< SRAM initialized and ready for use             */
  69.   HAL_SRAM_STATE_BUSY      = 0x02U,  /*!< SRAM internal process is ongoing               */
  70.   HAL_SRAM_STATE_ERROR     = 0x03U,  /*!< SRAM error state                               */
  71.   HAL_SRAM_STATE_PROTECTED = 0x04U   /*!< SRAM peripheral NORSRAM device write protected */
  72.  
  73. }HAL_SRAM_StateTypeDef;
  74.  
  75. /**
  76.   * @brief  SRAM handle Structure definition  
  77.   */
  78. typedef struct
  79. {
  80.   FSMC_NORSRAM_TypeDef           *Instance;  /*!< Register base address                        */
  81.  
  82.   FSMC_NORSRAM_EXTENDED_TypeDef  *Extended;  /*!< Extended mode register base address          */
  83.  
  84.   FSMC_NORSRAM_InitTypeDef       Init;       /*!< SRAM device control configuration parameters */
  85.  
  86.   HAL_LockTypeDef               Lock;       /*!< SRAM locking object                          */
  87.  
  88.   __IO HAL_SRAM_StateTypeDef    State;      /*!< SRAM device access state                     */
  89.  
  90.   DMA_HandleTypeDef             *hdma;      /*!< Pointer DMA handler                          */
  91.  
  92. }SRAM_HandleTypeDef;
  93.  
  94. /**
  95.   * @}
  96.   */
  97.  
  98. /* Exported constants --------------------------------------------------------*/
  99. /* Exported macro ------------------------------------------------------------*/
  100.  
  101. /** @defgroup SRAM_Exported_Macros SRAM Exported Macros
  102.   * @{
  103.   */
  104.  
  105. /** @brief Reset SRAM handle state
  106.   * @param  __HANDLE__: SRAM handle
  107.   * @retval None
  108.   */
  109. #define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SRAM_STATE_RESET)
  110.  
  111. /**
  112.   * @}
  113.   */
  114.  
  115. /* Exported functions --------------------------------------------------------*/
  116.  
  117. /** @addtogroup SRAM_Exported_Functions
  118.  *  @{
  119.  */
  120.  
  121. /** @addtogroup SRAM_Exported_Functions_Group1
  122.  *  @{
  123.  */
  124.  
  125. /* Initialization/de-initialization functions  **********************************/
  126. HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FSMC_NORSRAM_TimingTypeDef *Timing, FSMC_NORSRAM_TimingTypeDef *ExtTiming);
  127. HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram);
  128. void              HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
  129. void              HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);
  130.  
  131. void              HAL_SRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
  132. void              HAL_SRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
  133.  
  134. /**
  135.   * @}
  136.   */
  137.  
  138. /** @addtogroup SRAM_Exported_Functions_Group2
  139.  *  @{
  140.  */
  141.  
  142. /* I/O operation functions  *****************************************************/
  143. HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize);
  144. HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize);
  145. HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize);
  146. HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize);
  147. HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
  148. HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
  149. HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
  150. HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
  151.  
  152. /**
  153.   * @}
  154.   */
  155.  
  156. /** @addtogroup SRAM_Exported_Functions_Group3
  157.  *  @{
  158.  */
  159.  
  160. /* SRAM Control functions  ******************************************************/
  161. HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable(SRAM_HandleTypeDef *hsram);
  162. HAL_StatusTypeDef HAL_SRAM_WriteOperation_Disable(SRAM_HandleTypeDef *hsram);
  163.  
  164. /**
  165.   * @}
  166.   */
  167.  
  168. /** @addtogroup SRAM_Exported_Functions_Group4
  169.  *  @{
  170.  */
  171.  
  172. /* SRAM State functions *********************************************************/
  173. HAL_SRAM_StateTypeDef HAL_SRAM_GetState(SRAM_HandleTypeDef *hsram);
  174.  
  175. /**
  176.   * @}
  177.   */
  178.  
  179. /**
  180.   * @}
  181.   */
  182.  
  183. /**
  184.   * @}
  185.   */
  186.  
  187. #endif /* STM32F101xE || STM32F103xE || STM32F101xG || STM32F103xG || STM32F100xE */
  188.  
  189. /**
  190.   * @}
  191.   */
  192.  
  193. #ifdef __cplusplus
  194. }
  195. #endif
  196.  
  197. #endif /* __STM32F1xx_HAL_SRAM_H */
  198.  
  199. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  200.