当源地址为 McBSP1 FIFO 数据地址时、会导致 EDMA3TC 读取错误的原因是什么?
我正在尝试设置 EDMA 控制器以读取 McBSP1数据 FIFO、但收到"0x00002601"的 EDMA3TC ERRDET STAT 字段错误。
McBSP1在 FIFO 被启用时进行设置、并且 RNUMEVT 被设置为32个字(32位)。
EDMA CC 接收事件并传输到 TC0。
第一个参数集配置如下所示。 我还包含了 TC 寄存器内容。
ParamSet.opt = 0;
ParamSet.opt =/* 0x… *
(0x0 << 31 | //* PRIV = 0 R */
0x0 << 24 | //* PRIVID = 0 R */
0x0 << 23 | // ITCCHE = 0 R/W 中间传输链被禁用*/
0x0 << 22 | //* TCCHE = 0 R/W 传输完成链接被禁用*/
0x0 << 21 | //* ITCINTE = 0 R/W 中间传输完成内部被禁用*/
0x1 << 20 | //* TCINTE = 1 R/W 传输完成中断被启用*/
0x26 <<12 | /* TCC = 38 R/W 传输完成代码= MCBSP1_REVT = 38 */
0x0 << 11 | //* TCCMODE = 0正常完成*/
0x2 << 8 | //* FWID = 2 FIFO 宽度32位*/
0x0 << 3 | /*静态= 0 R/W 完成后将修改参数集*/
0x0 << 2 | // SYNCDIM = 0 R/W A 同步传输*/
0x0 << 1 | /* DAM = 0 R/W 目标地址增量*/
0x0 <<0); /* SAM = 0 R/W 源地址增量*/
ParamSet.SRC = MCBSP1_FIFO_DATA_ADDR;// 0x2400000u */
ParamSet.dst =(uint32_t) ddcPing;
ParamSet.link =(uint16_t)(MCBSP1_RX_PON_ParamSet * Size_ParamSet);
ParamSet.ACNT = 8*4; /* 8个字(32位)*/
ParamSet.BCNT = 4; /* 32个字(32位)*/
ParamSet.CCNT = 1; //未使用*/
ParamSet.BCNTRLD = 0; // CCNT 归零时重新加载 BCNT (未使用)*/
ParamSet.SRCBIDX = 0; // FIFO - src addr 在 ACNT 归零时不会 incr *
ParamSet.dSTBIDX = 8*4;//目标地址增量32 */
ParamSet.SRCCIDX = 0; //未使用*/
ParamSet.dSTCIDX = 0; //未使用*/
EDMA_setPaRAM (EDMA3CC_BASE_ADDR、EDMA_MCBSP1_REVT、&ParamSet);