嵌入式开发者社区

标题: SYSBIOS下EDMA3传输问题 [打印本页]

作者: bjx1234    时间: 2016-12-20 11:16
标题: SYSBIOS下EDMA3传输问题
     TMS320C6748光盘目录demo\SYSBIOS\Application\EDMA3这个工程中,调试出现问题。
1,原例程调试正常,改成MAX_ACOUNT=100,MAX_BCOUNT=100也正常。
把MAX_ACOUNT改成32,MAX_BCOUNT改成512,函数EDMA3Test()运行完之后,查看数组_dstBuff发现有连续几十个元素值是0

// 最大 ACOUNT
#define MAX_ACOUNT        (10u)
// 最大 BCOUNT
#define MAX_BCOUNT        (10u)
// 最大 CCOUNT
#define MAX_CCOUNT        (1u)


2, 原例程调试正常,改成MAX_ACOUNT=100,MAX_BCOUNT=100也正常。它的传输次数umenabled = bcnt * ccnt=100;
原例程的
unsigned int syncType   = EDMA3_SYNC_A;
改成:unsigned int syncType   = EDMA3_SYNC_AB; //希望它只传输一次。
运行之后,程序死在函数EDMA3Test()里:
        // 等待中断服务函数执行完成
        while(irqRaised == 0u){}
然后在中断服务函数Void EDMA3CCComplIsr(UArg arg)里插入断点,发现程序不进入这个中断。

3, 原例程调试正常,改成MAX_ACOUNT=100,MAX_BCOUNT=100也正常。它的传输次数umenabled = bcnt * ccnt=100;
原例程的

        // 使能 Intermediate & Final 传输完成中断
        paramSet.opt |= (1 << EDMA3CC_OPT_ITCINTEN_SHIFT);
        paramSet.opt |= (1 << EDMA3CC_OPT_TCINTEN_SHIFT);

改成:
     paramSet.opt &= ~(1 << EDMA3CC_OPT_ITCINTEN_SHIFT);  //希望全部传输完成后只中断一次
        paramSet.opt |= (1 << EDMA3CC_OPT_TCINTEN_SHIFT);

运行之后,程序死在函数EDMA3Test()里:
        // 等待中断服务函数执行完成
        while(irqRaised == 0u){}
然后在中断服务函数Void EDMA3CCComplIsr(UArg arg)里插入断点,发现程序不进入这个中断。




请试一下,我的这三种情况。看看是怎么回事


作者: Lewis    时间: 2016-12-21 08:25
1. 没发现存在这个问题
2. 没发现存在这个问题
3. A类传输,必须使能BCOUNT次
作者: bjx1234    时间: 2016-12-21 09:22
本帖最后由 bjx1234 于 2016-12-21 09:24 编辑

第一个问题,我把L2改成 L2 is all sram后,正常了。这是什么原因?
作者: bjx1234    时间: 2016-12-21 09:26
本帖最后由 bjx1234 于 2016-12-21 09:32 编辑
Lewis 发表于 2016-12-21 08:25
1. 没发现存在这个问题
2. 没发现存在这个问题
3. A类传输,必须使能BCOUNT次 ...

1,2两个情况,确定是按我说的试过了?
3.A类传输,必须使能BCOUNT次,没有疑问,我也理解。不是传输总次数问题,是想只在全部传输完后一次中断
发生多少次同步事件,与发生多少中断是能配置的。请看一下这个改法的意义。EDMA3视频教程里讲了。
最好是能在开发板上试一下。

     // 使能 Intermediate & Final 传输完成中断
        paramSet.opt |= (1 << EDMA3CC_OPT_ITCINTEN_SHIFT);
        paramSet.opt |= (1 << EDMA3CC_OPT_TCINTEN_SHIFT);

改成:
     paramSet.opt &= ~(1 << EDMA3CC_OPT_ITCINTEN_SHIFT);  //希望全部传输完成后只中断一次
        paramSet.opt |= (1 << EDMA3CC_OPT_TCINTEN_SHIFT);








欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4