VSF Documented
sthal_dma.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2024 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __ST_HAL_DMA_H__
19#define __ST_HAL_DMA_H__
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#if defined(HAL_DMA_MODULE_ENABLED) && VSF_HAL_USE_DMA == ENABLED
26
27/*============================ INCLUDES ======================================*/
28
29#include "sthal_def.h"
30
31/*============================ MACROS ========================================*/
32
33#define HAL_DMA_ERROR_NONE 0x00000000U
34#define HAL_DMA_ERROR_TE 0x00000001U
35#define HAL_DMA_ERROR_FE 0x00000002U
36#define HAL_DMA_ERROR_DME 0x00000004U
37#define HAL_DMA_ERROR_TIMEOUT 0x00000020U
38#define HAL_DMA_ERROR_PARAM 0x00000040U
39#define HAL_DMA_ERROR_NO_XFER 0x00000080U
40#define HAL_DMA_ERROR_NOT_SUPPORTED 0x00000100U
41
42#define DMA_CHANNEL_0 0x00000000U
43#define DMA_CHANNEL_1 0x02000000U
44#define DMA_CHANNEL_2 0x04000000U
45#define DMA_CHANNEL_3 0x06000000U
46#define DMA_CHANNEL_4 0x08000000U
47#define DMA_CHANNEL_5 0x0A000000U
48#define DMA_CHANNEL_6 0x0C000000U
49#define DMA_CHANNEL_7 0x0E000000U
50#if defined(DMA_SxCR_CHSEL_3)
51# define DMA_CHANNEL_8 0x10000000U
52# define DMA_CHANNEL_9 0x12000000U
53# define DMA_CHANNEL_10 0x14000000U
54# define DMA_CHANNEL_11 0x16000000U
55# define DMA_CHANNEL_12 0x18000000U
56# define DMA_CHANNEL_13 0x1A000000U
57# define DMA_CHANNEL_14 0x1C000000U
58# define DMA_CHANNEL_15 0x1E000000U
59#endif
60
61/*============================ MACROFIED FUNCTIONS ===========================*/
62/*============================ TYPES =========================================*/
63
64typedef vsf_dma_t DMA_Stream_TypeDef;
65
66typedef struct {
68 uint32_t Direction;
69 uint32_t PeriphInc;
70 uint32_t MemInc;
71 uint32_t PeriphDataAlignment;
72 uint32_t MemDataAlignment;
73 uint32_t Mode;
74 uint32_t Priority;
75 uint32_t FIFOMode;
76 uint32_t FIFOThreshold;
77 uint32_t MemBurst;
78 uint32_t PeriphBurst;
79} DMA_InitTypeDef;
80
81typedef enum {
82 HAL_DMA_STATE_RESET = 0x00U,
83 HAL_DMA_STATE_READY = 0x01U,
84 HAL_DMA_STATE_BUSY = 0x02U,
85 HAL_DMA_STATE_TIMEOUT = 0x03U,
86 HAL_DMA_STATE_ERROR = 0x04U,
87 HAL_DMA_STATE_ABORT = 0x05U,
88} HAL_DMA_StateTypeDef;
89
90typedef enum {
91 HAL_DMA_FULL_TRANSFER = 0x00U,
92 HAL_DMA_HALF_TRANSFER = 0x01U,
93} HAL_DMA_LevelCompleteTypeDef;
94
95typedef enum {
96 HAL_DMA_XFER_CPLT_CB_ID = 0x00U,
97 HAL_DMA_XFER_HALFCPLT_CB_ID = 0x01U,
98 HAL_DMA_XFER_M1CPLT_CB_ID = 0x02U,
99 HAL_DMA_XFER_M1HALFCPLT_CB_ID = 0x03U,
100 HAL_DMA_XFER_ERROR_CB_ID = 0x04U,
101 HAL_DMA_XFER_ABORT_CB_ID = 0x05U,
102 HAL_DMA_XFER_ALL_CB_ID = 0x06U,
103} HAL_DMA_CallbackIDTypeDef;
104
105typedef struct __DMA_HandleTypeDef {
106 DMA_Stream_TypeDef *Instance;
107 DMA_InitTypeDef Init;
108 HAL_LockTypeDef Lock;
109 volatile HAL_DMA_StateTypeDef State;
110 void *Parent;
111 void (*XferCpltCallback)(struct __DMA_HandleTypeDef *hdma);
112 void (*XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma);
113 void (*XferM1CpltCallback)(struct __DMA_HandleTypeDef *hdma);
114 void (*XferM1HalfCpltCallback)(struct __DMA_HandleTypeDef *hdma);
115 void (*XferErrorCallback)(struct __DMA_HandleTypeDef *hdma);
116 void (*XferAbortCallback)(struct __DMA_HandleTypeDef *hdma);
117 volatile uint32_t ErrorCode;
118 uint32_t StreamBaseAddress;
119 uint32_t StreamIndex;
120
121} DMA_HandleTypeDef;
122
123/*============================ GLOBAL VARIABLES ==============================*/
124/*============================ PROTOTYPES ====================================*/
125
126HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma);
127HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma);
128
129HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress,
130 uint32_t DstAddress, uint32_t DataLength);
131HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress,
132 uint32_t DstAddress, uint32_t DataLength);
133HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma);
134HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma);
136 DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel,
137 uint32_t Timeout);
138void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma);
139HAL_StatusTypeDef HAL_DMA_CleanCallbacks(DMA_HandleTypeDef *hdma);
141 DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID,
142 void (*pCallback)(DMA_HandleTypeDef *_hdma));
144 DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID);
145
146HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma);
147uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma);
148
149#endif /* defined(HAL_DMA_MODULE_ENABLED) && VSF_HAL_USE_DMA == ENABLED */
150
151#ifdef __cplusplus
152}
153#endif
154
155#endif
struct @516 Channel
Channel.
vsf_err_t(* Init)(vsf_adc_cfg_t *pCfg)
Definition adc_interface.h:38
unsigned uint32_t
Definition stdint.h:9
HAL_StatusTypeDef
Definition sthal_def.h:61
HAL_LockTypeDef
Definition sthal_def.h:68
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Definition sthal_dma.c:75
HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma)
Definition sthal_dma.c:36
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Definition sthal_dma.c:80
HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma)
Definition sthal_dma.c:48
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Definition sthal_dma.c:68
HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID)
Definition sthal_dma.c:104
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
Definition sthal_dma.c:93
HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Definition sthal_dma.c:61
HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
Definition sthal_dma.c:85
HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void(*pCallback)(DMA_HandleTypeDef *_hdma))
Definition sthal_dma.c:95
uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma)
Definition sthal_dma.c:154
HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma)
Definition sthal_dma.c:149
Definition vsf_template_dma.h:499
Generated from commit: vsfteam/vsf@0c4049f