参考代码

This commit is contained in:
LokLiang
2024-03-28 12:19:52 +08:00
commit 7b86aa3362
96 changed files with 19986 additions and 0 deletions

View 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