/**************************************************************************//**
|
* @file pan_hal_dmac.h
|
* @version V0.0.0
|
* $Revision: 1 $
|
* $Date: 23/09/10 $
|
* @brief Panchip series DMAC (Direct Memory Access Controller) HAL (Hardware Abstraction Layer) header file.
|
*
|
* @note
|
* Copyright (C) 2023 Panchip Technology Corp. All rights reserved.
|
*****************************************************************************/
|
|
|
#ifndef __PAN_HAL_DMAC_H__
|
#define __PAN_HAL_DMAC_H__
|
|
|
#include "pan_hal_def.h"
|
|
/**
|
* @defgroup pan_hal_dmac DMAC driver
|
* @{
|
* @ingroup pan_dmac
|
* @brief Direct Memory Access Controller (DMAC) peripheral driver.
|
*/
|
typedef enum
|
{
|
DMAC_Peri_UART = 0x01,
|
DMAC_Peri_I2C = 0x02,
|
DMAC_Peri_SPI = 0x03,
|
DMAC_Peri_ADC = 0x04,
|
}DMAC_Peri_Mode_Opt;
|
|
|
// typedef void (*DMAC_CallbackFunc)(uint8_t);
|
/**
|
* @brief DMA handle Structure definition
|
*/
|
typedef struct
|
{
|
DMA_T *dma;
|
DMAC_ChannelConfigTypeDef ConfigTmp;
|
|
DMAC_CallbackFunc Callback;
|
// uint8_t Status;
|
bool XferFlag;
|
|
UART_CallbackFunc CallbackUart;
|
I2C_CallbackFunc CallbackI2c;
|
SPI_CallbackFunc CallbackSpi;
|
ADC_CallbackFunc CallbackAdc;
|
DMAC_Peri_Mode_Opt PeriMode;
|
|
uint32_t *pBuffPtr;
|
uint16_t XferSize;
|
} DMAC_HandleTypeDef;
|
|
#define DMAC_CHANNEL_NUMS 2
|
extern DMAC_HandleTypeDef DMAC_Channel_Array[DMAC_CHANNEL_NUMS];
|
#define DMAC_Channel_1 DMAC_Channel_Array[0]
|
#define DMAC_Channel_2 DMAC_Channel_Array[1]
|
#define DMAC_Channel_3 DMAC_Channel_Array[2]
|
extern DMAC_ChannelConfigTypeDef dma_uart2mem_config;
|
extern DMAC_ChannelConfigTypeDef dma_mem2uart_config;
|
extern DMAC_ChannelConfigTypeDef dma_spi2mem_config;
|
extern DMAC_ChannelConfigTypeDef dma_mem2spi_config;
|
extern DMAC_ChannelConfigTypeDef dma_mem2i2c_config;
|
extern DMAC_ChannelConfigTypeDef dma_i2c2mem_config;
|
extern DMAC_ChannelConfigTypeDef dma_adc2mem_config;
|
extern DMAC_ChannelConfigTypeDef dma_mem2i2c_u16_config;
|
|
void HAL_DMA_Init(void);
|
void DMA_IRQHandler(void);
|
|
#endif
|