18#if VSF_HAL_USE_DMA == ENABLED
23#if defined(VSF_DMA_CFG_IMP_RENAME_DEVICE_PREFIX) && (VSF_DMA_CFG_IMP_RENAME_DEVICE_PREFIX == ENABLED)
24# define vsf_real_dma_t VSF_MCONNECT(VSF_DMA_CFG_IMP_DEVICE_PREFIX, _t)
25# define vsf_real_dma_capability VSF_MCONNECT(VSF_DMA_CFG_IMP_DEVICE_PREFIX, _capability)
26# define vsf_real_dma_ctrl VSF_MCONNECT(VSF_DMA_CFG_IMP_DEVICE_PREFIX, _ctrl)
27# define vsf_real_dma_get_configuration VSF_MCONNECT(VSF_DMA_CFG_IMP_DEVICE_PREFIX, _get_configuration)
28# define vsf_real_dma_channel_get_configuration VSF_MCONNECT(VSF_DMA_CFG_IMP_DEVICE_PREFIX, _channel_get_configuration)
29# define vsf_real_dma_channel_sg_config_desc VSF_MCONNECT(VSF_DMA_CFG_IMP_DEVICE_PREFIX, _channel_sg_config_desc)
30# define vsf_real_dma_channel_sg_start VSF_MCONNECT(VSF_DMA_CFG_IMP_DEVICE_PREFIX, _channel_sg_start)
31# define vsf_real_dma_channel_acquire_from_all VSF_MCONNECT(VSF_DMA_CFG_IMP_DEVICE_PREFIX, _channel_acquire_from_all)
33# define vsf_real_dma_t VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_t)
34# define vsf_real_dma_capability VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_capability)
35# define vsf_real_dma_ctrl VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_ctrl)
36# define vsf_real_dma_get_configuration VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_get_configuration)
37# define vsf_real_dma_channel_get_configuration VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_get_configuration)
38# define vsf_real_dma_channel_sg_config_desc VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_sg_config_desc)
39# define vsf_real_dma_channel_sg_start VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_sg_start)
40# define vsf_real_dma_channel_acquire_from_all VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_acquire_from_all)
43#ifndef VSF_DMA_CFG_REIMPLEMENT_API_CAPABILITY
44# define VSF_DMA_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
47#ifndef VSF_DMA_CFG_REIMPLEMENT_API_CTRL
48# define VSF_DMA_CFG_REIMPLEMENT_API_CTRL DISABLED
51#ifndef VSF_DMA_CFG_REIMPLEMENT_API_SG_CONFIG_DESC
52# define VSF_DMA_CFG_REIMPLEMENT_API_SG_CONFIG_DESC DISABLED
55#ifndef VSF_DMA_CFG_REIMPLEMENT_API_SG_START
56# define VSF_DMA_CFG_REIMPLEMENT_API_SG_START DISABLED
59#ifndef VSF_DMA_CFG_REIMPLEMENT_API_GET_CONFIGURATION
60# define VSF_DMA_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
63#ifndef VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_GET_CONFIGURATION
64# define VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_GET_CONFIGURATION \
68#ifndef VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_ACQUIRE_FROM_ALL
69# define VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_ACQUIRE_FROM_ALL \
73#ifdef VSF_DMA_CFG_IMP_REMAP_PREFIX
74# undef VSF_DMA_CFG_REIMPLEMENT_API_CAPABILITY
75# define VSF_DMA_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
76# undef VSF_DMA_CFG_REIMPLEMENT_API_CTRL
77# define VSF_DMA_CFG_REIMPLEMENT_API_CTRL ENABLED
78# undef VSF_DMA_CFG_REIMPLEMENT_API_GET_CONFIGURATION
79# define VSF_DMA_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
80# undef VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_GET_CONFIGURATION
81# define VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_GET_CONFIGURATION ENABLED
84#if VSF_DMA_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
85# ifndef VSF_DMA_CFG_CAPABILITY_IRQ_MASK
86# define VSF_DMA_CFG_CAPABILITY_IRQ_MASK VSF_DMA_IRQ_ALL_BITS_MASK
88# ifndef VSF_DMA_CFG_CAPABILITY_CHANNEL_COUNT
89# define VSF_DMA_CFG_CAPABILITY_CHANNEL_COUNT 8
91# ifndef VSF_DMA_CFG_CAPABILITY_IRQ_COUNT
92# define VSF_DMA_CFG_CAPABILITY_IRQ_COUNT VSF_DMA_CFG_CAPABILITY_CHANNEL_COUNT
94# ifndef VSF_DMA_CFG_CAPABILITY_SUPPORTED_MODES
95# define VSF_DMA_CFG_CAPABILITY_SUPPORTED_MODES VSF_DMA_MODE_ALL_BITS_MASK
97# ifndef VSF_DMA_CFG_CAPABILITY_MAX_TRANSFER_COUNT
98# define VSF_DMA_CFG_CAPABILITY_MAX_TRANSFER_COUNT 0xFFFFFFFF
100# ifndef VSF_DMA_CFG_CAPABILITY_ADDR_ALIGNMENT
101# define VSF_DMA_CFG_CAPABILITY_ADDR_ALIGNMENT 1
103# ifndef VSF_DMA_CFG_CAPABILITY_SUPPORT_SCATTER_GATHER
104# define VSF_DMA_CFG_CAPABILITY_SUPPORT_SCATTER_GATHER 0
111#if VSF_DMA_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
115 .irq_mask = VSF_DMA_CFG_CAPABILITY_IRQ_MASK,
117 .irq_count = VSF_DMA_CFG_CAPABILITY_IRQ_COUNT,
118 .supported_modes = VSF_DMA_CFG_CAPABILITY_SUPPORTED_MODES,
119 .max_transfer_count = VSF_DMA_CFG_CAPABILITY_MAX_TRANSFER_COUNT,
120 .addr_alignment = VSF_DMA_CFG_CAPABILITY_ADDR_ALIGNMENT,
121 .support_scatter_gather = VSF_DMA_CFG_CAPABILITY_SUPPORT_SCATTER_GATHER,
124 return dma_capability;
128#if VSF_DMA_CFG_REIMPLEMENT_API_SG_CONFIG_DESC == DISABLED
136 if ((
NULL == dma_ptr) || (
NULL == sg_desc_ptr) || (sg_count == 0)) {
145#if VSF_DMA_CFG_REIMPLEMENT_API_SG_START == DISABLED
146vsf_err_t vsf_real_dma_channel_sg_start(vsf_real_dma_t *dma_ptr,
uint8_t channel)
150 if (
NULL == dma_ptr) {
159#if VSF_DMA_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
172#if VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_GET_CONFIGURATION == DISABLED
185#if VSF_DMA_CFG_REIMPLEMENT_API_CTRL == DISABLED
197#ifndef VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_ACQUIRE_ADJUST_HINT
198# define VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_ACQUIRE_ADJUST_HINT DISABLED
201#if VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_ACQUIRE_FROM_ALL == DISABLED
206# define require_dma_channel(_idx, _hint_ptr) \
207 if (VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_acquire)( \
208 &VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma, _idx), _hint_ptr) == VSF_ERR_NONE) {\
209 return (vsf_dma_t *)&VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma, _idx); \
212# define __VSF_HAL_TEMPLATE_MASK VSF_MCONNECT(VSF_DMA_CFG_IMP_UPCASE_PREFIX, _DMA_MASK)
213# define __VSF_HAL_TEMPLATE_MACRO require_dma_channel
214# define __VSF_HAL_TEMPLATE_ARG channel_hint_ptr
223#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_ADDR
224#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_CAPABILITY
225#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_CFG
226#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_CFG
227#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_HINT
228#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_MODE
229#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_SG_CFG
230#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_CHANNEL_STATUS
231#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_IRQ_MASK
232#undef VSF_DMA_CFG_REIMPLEMENT_TYPE_CTRL
233#undef VSF_DMA_CFG_REIMPLEMENT_API_CAPABILITY
234#undef VSF_DMA_CFG_REIMPLEMENT_API_CTRL
235#undef VSF_DMA_CFG_REIMPLEMENT_API_GET_CONFIGURATION
236#undef VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_GET_CONFIGURATION
237#undef VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_ACQUIRE_ADJUST_HINT
238#undef VSF_DMA_CFG_REIMPLEMENT_API_CHANNEL_ACQUIRE_FROM_ALL
239#undef VSF_DMA_CFG_CAPABILITY_IRQ_MASK
240#undef VSF_DMA_CFG_CAPABILITY_CHANNEL_COUNT
241#undef VSF_DMA_CFG_CAPABILITY_IRQ_COUNT
242#undef VSF_DMA_CFG_CAPABILITY_SUPPORTED_MODES
243#undef VSF_DMA_CFG_CAPABILITY_MAX_TRANSFER_COUNT
244#undef VSF_DMA_CFG_CAPABILITY_ADDR_ALIGNMENT
245#undef VSF_DMA_CFG_CAPABILITY_SUPPORT_SCATTER_GATHER
247#undef vsf_real_dma_capability
248#undef vsf_real_dma_ctrl
249#undef vsf_real_dma_get_configuration
250#undef vsf_real_dma_channel_get_configuration
251#undef vsf_real_dma_channel_sg_config_desc
252#undef vsf_real_dma_channel_sg_start
253#undef vsf_real_dma_channel_acquire_from_all
260#ifdef VSF_DMA_CFG_IMP_REMAP_PREFIX
261# define vsf_imp_dma_t VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_t)
262# define vsf_imp_dma_init VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_init)
263# define vsf_imp_dma_fini VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_fini)
264# define vsf_imp_dma_get_configuration VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_get_configuration)
265# define vsf_imp_dma_capability VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_capability)
266# define vsf_imp_dma_ctrl VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_ctrl)
267# define vsf_imp_dma_channel_acquire VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_acquire)
268# define vsf_imp_dma_channel_release VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_release)
269# define vsf_imp_dma_channel_config VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_config)
270# define vsf_imp_dma_channel_get_configuration VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_get_configuration)
271# define vsf_imp_dma_channel_start VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_start)
272# define vsf_imp_dma_channel_cancel VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_cancel)
273# define vsf_imp_dma_channel_get_transferred_count VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_get_transferred_count)
274# define vsf_imp_dma_channel_status VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_status)
276# define vsf_remap_dma_t VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_t)
277# define vsf_remap_dma_init VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_init)
278# define vsf_remap_dma_fini VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_fini)
279# define vsf_remap_dma_get_configuration VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_get_configuration)
280# define vsf_remap_dma_capability VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_capability)
281# define vsf_remap_dma_channel_acquire VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_channel_acquire)
282# define vsf_remap_dma_channel_release VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_channel_release)
283# define vsf_remap_dma_channel_config VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_channel_config)
284# define vsf_remap_dma_channel_get_configuration VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_channel_get_configuration)
285# define vsf_remap_dma_channel_start VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_channel_start)
286# define vsf_remap_dma_channel_cancel VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_channel_cancel)
287# define vsf_remap_dma_channel_get_transferred_count VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_channel_get_transferred_count)
288# define vsf_remap_dma_channel_status VSF_MCONNECT(VSF_DMA_CFG_IMP_REMAP_PREFIX, _dma_channel_status)
290# define VSF_DMA_CFG_IMP_REMAP_FUNCTIONS \
291 vsf_err_t vsf_imp_dma_init(vsf_imp_dma_t *dma_ptr) \
293 VSF_HAL_ASSERT(dma_ptr != NULL); \
294 return vsf_remap_dma_init(dma_ptr); \
296 void vsf_imp_dma_fini(vsf_imp_dma_t *dma_ptr) \
298 VSF_HAL_ASSERT(dma_ptr != NULL); \
299 vsf_remap_dma_fini(dma_ptr); \
301 vsf_err_t vsf_imp_dma_get_configuration(vsf_imp_dma_t *dma_ptr, \
302 vsf_dma_cfg_t *cfg_ptr) \
304 VSF_HAL_ASSERT(dma_ptr != NULL); \
305 VSF_HAL_ASSERT(cfg_ptr != NULL); \
306 return vsf_remap_dma_get_configuration(dma_ptr, cfg_ptr); \
308 vsf_dma_capability_t vsf_imp_dma_capability(vsf_imp_dma_t *dma_ptr) \
310 VSF_HAL_ASSERT(dma_ptr != NULL); \
311 return vsf_remap_dma_capability(dma_ptr); \
313 vsf_err_t vsf_imp_dma_ctrl(vsf_imp_dma_t *dma_ptr, vsf_dma_ctrl_t ctrl, void *param) \
315 VSF_HAL_ASSERT(dma_ptr != NULL); \
316 return vsf_remap_dma_ctrl(dma_ptr, ctrl, param); \
318 vsf_err_t vsf_imp_dma_channel_acquire(vsf_imp_dma_t *dma_ptr, \
319 vsf_dma_channel_hint_t *channel_hint_ptr) \
321 VSF_HAL_ASSERT(dma_ptr != NULL); \
322 return vsf_remap_dma_channel_acquire(dma_ptr, channel_hint_ptr); \
324 void vsf_imp_dma_channel_release(vsf_imp_dma_t *dma_ptr, int8_t channel) \
326 VSF_HAL_ASSERT(dma_ptr != NULL); \
327 vsf_remap_dma_channel_release(dma_ptr, channel); \
329 vsf_err_t vsf_imp_dma_channel_config(vsf_imp_dma_t *dma_ptr, int8_t channel, \
330 vsf_dma_channel_cfg_t *cfg_ptr) \
332 VSF_HAL_ASSERT(dma_ptr != NULL); \
333 return vsf_remap_dma_channel_config(dma_ptr, channel, cfg_ptr); \
335 vsf_err_t vsf_imp_dma_channel_get_configuration(vsf_imp_dma_t *dma_ptr, \
337 vsf_dma_channel_cfg_t *cfg_ptr) \
339 VSF_HAL_ASSERT(dma_ptr != NULL); \
340 VSF_HAL_ASSERT(cfg_ptr != NULL); \
341 return vsf_remap_dma_channel_get_configuration(dma_ptr, channel, cfg_ptr); \
343 vsf_err_t vsf_imp_dma_channel_start(vsf_imp_dma_t *dma_ptr, int8_t channel, \
344 uint32_t src_address, uint32_t dst_address, \
347 VSF_HAL_ASSERT(dma_ptr != NULL); \
348 return vsf_remap_dma_channel_start(dma_ptr, channel, src_address, \
349 dst_address, count); \
351 vsf_err_t vsf_imp_dma_channel_cancel(vsf_imp_dma_t *dma_ptr, int8_t channel) \
353 VSF_HAL_ASSERT(dma_ptr != NULL); \
354 return vsf_remap_dma_channel_cancel(dma_ptr, channel); \
356 vsf_err_t vsf_imp_dma_channel_get_transferred_count(vsf_imp_dma_t *dma_ptr, \
359 VSF_HAL_ASSERT(dma_ptr != NULL); \
360 return vsf_remap_dma_channel_get_transferred_count(dma_ptr, channel); \
362 vsf_dma_channel_status_t vsf_imp_dma_channel_status(vsf_imp_dma_t *dma_ptr, \
365 VSF_HAL_ASSERT(dma_ptr != NULL); \
366 return vsf_remap_dma_channel_status(dma_ptr, channel); \
373#define VSF_HAL_TEMPLATE_IMP_NAME _dma
374#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _DMA
376#if !defined(VSF_DMA_CFG_IMP_PREFIX) && !defined(VSF_DMA_CFG_IMP_DEVICE_PREFIX)
377# error "Please define VSF_DMA_CFG_IMP_PREFIX in dma driver"
380#if !defined(VSF_DMA_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_DMA_CFG_IMP_DEVICE_UPCASE_PREFIX)
381# error "Please define VSF_DMA_CFG_IMP_UPCASE_PREFIX in dma driver"
384#ifndef VSF_DMA_CFG_IMP_COUNT_MASK_PREFIX
385# define VSF_DMA_CFG_IMP_COUNT_MASK_PREFIX VSF_DMA_CFG_IMP_UPCASE_PREFIX
388#ifdef VSF_DMA_CFG_IMP_REMAP_FUNCTIONS
389# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_DMA_CFG_IMP_REMAP_FUNCTIONS
394#undef VSF_DMA_CFG_IMP_PREFIX
395#undef VSF_DMA_CFG_IMP_COUNT_MASK_PREFIX
396#undef VSF_DMA_CFG_IMP_UPCASE_PREFIX
397#undef VSF_DMA_CFG_IMP_DEVICE_PREFIX
398#undef VSF_DMA_CFG_IMP_DEVICE_UPCASE_PREFIX
399#undef VSF_DMA_CFG_IMP_LV0
400#undef VSF_DMA_CFG_IMP_RENAME_DEVICE_PREFIX
401#undef VSF_DMA_CFG_IMP_REMAP_FUNCTIONS
402#undef VSF_DMA_CFG_IMP_HAS_OP
403#undef VSF_DMA_CFG_IMP_EXTERN_OP
406#undef vsf_imp_dma_init
407#undef vsf_imp_dma_fini
408#undef vsf_imp_dma_get_configuration
409#undef vsf_imp_dma_capability
410#undef vsf_imp_dma_ctrl
411#undef vsf_imp_dma_channel_acquire
412#undef vsf_imp_dma_channel_release
413#undef vsf_imp_dma_channel_config
414#undef vsf_imp_dma_channel_get_configuration
415#undef vsf_imp_dma_channel_start
416#undef vsf_imp_dma_channel_cancel
417#undef vsf_imp_dma_channel_get_transferred_count
418#undef vsf_imp_dma_channel_status
420#undef vsf_remap_dma_t
421#undef vsf_remap_dma_init
422#undef vsf_remap_dma_fini
423#undef vsf_remap_dma_get_configuration
424#undef vsf_remap_dma_capability
425#undef vsf_remap_dma_ctrl
426#undef vsf_remap_dma_channel_acquire
427#undef vsf_remap_dma_channel_release
428#undef vsf_remap_dma_channel_config
429#undef vsf_remap_dma_channel_get_configuration
430#undef vsf_remap_dma_channel_start
431#undef vsf_remap_dma_channel_cancel
432#undef vsf_remap_dma_channel_get_transferred_count
433#undef vsf_remap_dma_channel_status
435#undef VSF_HAL_TEMPLATE_IMP_NAME
436#undef VSF_HAL_TEMPLATE_IMP_UPCASE_NAME
461#ifdef VSF_DMA_CFG_MODE_CHECK_UNIQUE
463#ifndef VSF_DMA_CHECK_UNIQUE_DIRECTION_MODES
464# define VSF_DMA_CHECK_UNIQUE_DIRECTION_MODES \
465 VSF_DMA_MEMORY_TO_MEMORY, \
466 VSF_DMA_MEMORY_TO_PERIPHERAL, \
467 VSF_DMA_PERIPHERAL_TO_MEMORY, \
468 VSF_DMA_PERIPHERAL_TO_PERIPHERAL
471#ifndef VSF_DMA_CHECK_UNIQUE_SRC_ADDR_MODES
472# define VSF_DMA_CHECK_UNIQUE_SRC_ADDR_MODES \
473 VSF_DMA_SRC_ADDR_INCREMENT, \
474 VSF_DMA_SRC_ADDR_DECREMENT, \
475 VSF_DMA_SRC_ADDR_NO_CHANGE
478#ifndef VSF_DMA_CHECK_UNIQUE_DST_ADDR_MODES
479# define VSF_DMA_CHECK_UNIQUE_DST_ADDR_MODES \
480 VSF_DMA_DST_ADDR_INCREMENT, \
481 VSF_DMA_DST_ADDR_DECREMENT, \
482 VSF_DMA_DST_ADDR_NO_CHANGE
485#ifndef VSF_DMA_CHECK_UNIQUE_PRIORITY_MODES
486# define VSF_DMA_CHECK_UNIQUE_PRIORITY_MODES \
487 VSF_DMA_PRIORITY_LOW, \
488 VSF_DMA_PRIORITY_MEDIUM, \
489 VSF_DMA_PRIORITY_HIGH, \
490 VSF_DMA_PRIORITY_VERY_HIGH
539#ifdef VSF_DMA_CUSTOM_MODE_VALUES
554#ifdef VSF_DMA_CUSTOM_MODE_VALUES
555 , VSF_DMA_CUSTOM_MODE_VALUES
559#undef VSF_DMA_CHECK_UNIQUE_DIRECTION_MODES
560#undef VSF_DMA_CHECK_UNIQUE_SRC_ADDR_MODES
561#undef VSF_DMA_CHECK_UNIQUE_DST_ADDR_MODES
562#undef VSF_DMA_CHECK_UNIQUE_PRIORITY_MODES
567#ifdef VSF_DMA_CFG_IRQ_MASK_CHECK_UNIQUE
569#ifdef VSF_DMA_CUSTOM_IRQ_MASK_VALUES
586#ifdef VSF_DMA_CUSTOM_IRQ_MASK_VALUES
587 , VSF_DMA_CUSTOM_IRQ_MASK_VALUES
592#undef VSF_DMA_CFG_MODE_CHECK_UNIQUE
593#undef VSF_DMA_CFG_IRQ_MASK_CHECK_UNIQUE
594#undef VSF_DMA_CUSTOM_MODE_VALUES
595#undef VSF_DMA_CUSTOM_IRQ_MASK_VALUES
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
@ VSF_ERR_INVALID_PARAMETER
invalid parameter
Definition __type.h:52
@ VSF_DMA_PRIORITY_MEDIUM
Definition dma.h:113
@ VSF_DMA_PRIORITY_HIGH
Definition dma.h:114
@ VSF_DMA_DST_ADDR_NO_CHANGE
Definition dma.h:105
@ VSF_DMA_SRC_ADDR_INCREMENT
Definition dma.h:96
@ VSF_DMA_MEMORY_TO_PERIPHERAL
Definition dma.h:89
@ VSF_DMA_MEMORY_TO_MEMORY
Definition dma.h:88
@ VSF_DMA_PRIORITY_LOW
Definition dma.h:112
@ VSF_DMA_SRC_ADDR_DECREMENT
Definition dma.h:130
@ VSF_DMA_SRC_ADDR_NO_CHANGE
Definition dma.h:97
@ VSF_DMA_PRIORITY_VERY_HIGH
Definition dma.h:115
@ VSF_DMA_DST_ADDR_DECREMENT
Definition dma.h:131
@ VSF_DMA_PERIPHERAL_TO_PERIPHERAL
Definition dma.h:129
@ VSF_DMA_PERIPHERAL_TO_MEMORY
Definition dma.h:90
@ VSF_DMA_DST_ADDR_INCREMENT
Definition dma.h:104
@ VSF_DMA_IRQ_MASK_HALF_CPL
Definition dma.h:190
@ VSF_DMA_IRQ_MASK_CPL
Definition dma.h:188
@ VSF_DMA_IRQ_MASK_ERROR
Definition dma.h:192
#define NULL
Definition lvgl.h:26
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
DMA capability structure that can be reimplemented in specific HAL drivers.
Definition dma.h:255
uint8_t channel_count
Number of DMA channels.
Definition dma.h:260
Configuration structure for DMA.
Definition dma.h:249
dma configuration
Definition dma.h:211
DMA channel hint structure for channel allocation.
Definition dma.h:197
DMA scatter-gather descriptor structure.
Definition dma.h:239
Definition vsf_template_dma.h:906
vsf_adc_isr_t isr
Definition adc.h:113
#define VSF_DMA_CFG_MODE_CHECK_UNIQUE
Definition dma.c:312
#define VSF_DMA_CFG_IRQ_MASK_CHECK_UNIQUE
Definition dma.c:313
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
vsf_dma_ctrl_t
Predefined VSF DMA control commands that can be reimplemented in specific HAL drivers.
Definition vsf_template_dma.h:818
#define VSF_HAL_CHECK_UNIQUE_CUSTOM(__CHECK_FUNC,...)
Definition vsf_template_static_assert_unique.h:2426