EDMA例程里面(路径C:\CCStudio_v3.3\examples\evmDM642\csl\edma\edma1),这个工程很好的演示了EDMA的使用,但是不能拷贝整个数组,只能单个拷贝,解决方法
修改
EDMA_Config cfgEdmaPing =
{
//Making Options parameter register - EDMA_OPT
EDMA_OPT_RMK
(
EDMA_OPT_PRI_LOW,
EDMA_OPT_ESIZE_32BIT,
EDMA_OPT_2DS_NO,
EDMA_OPT_SUM_NONE, 修改为 EDMA_OPT_SUM_INC (EDMA_OPT_SUM_NONE表示源地址不增加,EDMA_OPT_SUM_INC 表示源地址加1,同理下面的EDMA_OPT_DUM_INC也是这个意思,表示目的地址加1)
EDMA_OPT_2DD_NO,
EDMA_OPT_DUM_INC,
EDMA_OPT_TCINT_YES,
EDMA_OPT_TCC_OF(TCCINTNUM),
EDMA_OPT_TCCM_OF(TCCINTNUM >> 4),
EDMA_OPT_ATCINT_NO,
EDMA_OPT_ATCC_OF(0),
EDMA_OPT_PDTS_DISABLE,
EDMA_OPT_PDTD_DISABLE,
EDMA_OPT_LINK_YES,
EDMA_OPT_FS_NO
),
EDMA_SRC_OF(&ping_data),//Source address register
EDMA_CNT_OF(BUFF_SZ), //Transfer count parameter
EDMA_DST_OF(ping), //Destination address parameter
EDMA_IDX_OF(0x00000004),//Index parameter
EDMA_RLD_OF(0x00000000) //Count reload/link parameter
};
// 串口信宿为Ping缓冲的EDMA配置
EDMA_Config cfgEdmaPing = {
EDMA_OPT_RMK( //EDMA_OPT寄存器配置
EDMA_OPT_PRI_LOW, //设置EDMA事件的优先级