参考代码
This commit is contained in:
42
components/system/include/drivers/chip/dma.h
Executable file
42
components/system/include/drivers/chip/dma.h
Executable file
@@ -0,0 +1,42 @@
|
||||
#ifndef __DMA_H__
|
||||
#define __DMA_H__
|
||||
|
||||
#include "drivers/chip/_hal.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
typedef enum __packed
|
||||
{
|
||||
_DMA_DIR_MEM_TO_MEM,
|
||||
_DMA_DIR_PER_TO_MEM,
|
||||
_DMA_DIR_MEM_TO_PER,
|
||||
} dma_dir_t;
|
||||
|
||||
typedef void (*dma_isr_cb_fn)(void);
|
||||
|
||||
void drv_dma_enable(hal_id_t id);
|
||||
void drv_dma_disable(hal_id_t id);
|
||||
|
||||
int drv_dma_init(hal_id_t id, unsigned channel, unsigned prio_level);
|
||||
int drv_dma_deinit(hal_id_t id, unsigned channel);
|
||||
|
||||
int drv_dma_irq_callback_enable(hal_id_t id, unsigned channel, dma_isr_cb_fn cb);
|
||||
int drv_dma_irq_callback_disable(hal_id_t id, unsigned channel);
|
||||
|
||||
void drv_dma_irq_enable(hal_id_t id, unsigned channel, int priority);
|
||||
void drv_dma_irq_disable(hal_id_t id, unsigned channel);
|
||||
|
||||
void drv_dma_set(hal_id_t id, unsigned channel, void *dest, unsigned dest_bit_width, bool dest_inc_mode, const void *src, unsigned src_bit_width, bool src_inc_mode, unsigned count, dma_dir_t dir);
|
||||
void drv_dma_start(hal_id_t id, unsigned channel);
|
||||
void drv_dma_stop(hal_id_t id, unsigned channel);
|
||||
|
||||
unsigned drv_dma_get_remain(hal_id_t id, unsigned channel);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user