|  | 
板凳
 
 
 楼主|
发表于 2016-10-13 18:15:56
|
只看该作者 
| 你好,我今天自己编程,发送和接收EDMA都采用乒乓方式,程序运行后,只有接收正常进入中断,但是发送一次都不进入中断。EDMA的设置如下,麻烦帮我看下是否有问题! static struct EDMA3CCPaRAMEntry const PingxmtPar =
 {
 (unsigned int)(EDMA3CC_OPT_DAM  | OPT_FIFO_WIDTH),   // Opt
 (unsigned int)pingxmt,                                           // 源地址
 (unsigned short)(BYTES_PER_SAMPLE),                  // aCnt
 (unsigned short)(AUDIO_BUF_SIZE),                    // bCnt
 (unsigned int) SOC_MCBSP_0_DXR_REGS,                 // 目标地址//20161012 CHANGE
 (short) (BYTES_PER_SAMPLE),                                  // 源 bIdx
 (short)(0),                                                          // 目标 bIdx
 (unsigned short)(Pongxmt_PaRAM_ID),                  // 链接地址
 (unsigned short)(AUDIO_BUF_SIZE),                              // bCnt 重装值
 (short)(0),                                                              // 源 cIdx
 (short)(0),                                                          // 目标 cIdx
 (unsigned short)1                                                    // cCnt
 };
 static struct EDMA3CCPaRAMEntry const PingrcvPar =
 {
 (unsigned int)(EDMA3CC_OPT_SAM  | OPT_FIFO_WIDTH),   // Opt
 (unsigned int)SOC_MCBSP_0_DRR_REGS,                  // 源地址 //20161012 CHANGE
 (unsigned short)(BYTES_PER_SAMPLE),                  // aCnt        每个sample占用2个字节
 (unsigned short)(AUDIO_BUF_SIZE),                    // bCnt        一行有1个元素
 (unsigned int)pingrcv,                                            // 目标地址
 (short) (0),                                                             // 源 bIdx
 (short)(BYTES_PER_SAMPLE),                           // 目标 bIdx   目标索引2个字节
 (unsigned short)(Pongrcv_PaRAM_ID),                  // 链接地址    到第40个 paRAM
 (unsigned short)(AUDIO_BUF_SIZE),                             // bCnt 重装值
 (short)(0),                                                              // 源 cIdx
 (short)(0),                                                          // 目标 cIdx
 (unsigned short)1                                                    // cCnt
 };
 还有一个问题,看到StarterWare例程中对EDMA的param的设置方式有两种,
 EDMA3SetPaRAM(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCBSP0_RX, ¶mSet);
 EDMA3SetPaRAM(SOC_EDMA30CC_0_REGS, (PAR_RX_START + idx), ¶mSet);
 这两条语句有什么区别吗?麻烦解答一下!
 | 
 |