打印

28335 dma双通道及cpu协调问题

[复制链接]
1202|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenzhi658|  楼主 | 2015-2-13 13:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chenzhi658 于 2015-2-13 13:58 编辑

最近在通过DMA读写片外RAM,DMA的触发源是片外RAM的1个1毫秒脉冲信号,同时触发DMA1,DMA2。我在设计中,测试DMA通道切换和CPU的协调时,写了以下代码:
while(DmaRegs.CH1.CONTROL.bit.TRANSFERSTS==1){
   dma_halt_test[0]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;
   dma_halt_test[1]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;
   dma_halt_test[2]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;
   dma_halt_test[3]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;
}
while(DmaRegs.CH2.CONTROL.bit.TRANSFERSTS==1)  dma_halt_test[4]++;


发现dma_halt_test[2]dma_halt_test[3]dma_halt_test[4] 没有变化,一直是初始化值;而
dma_halt_test[0]和 dma_halt_test[1]会变化,但是没规律,有时其中一个变化,有时一起变化。
请高手解释其中原因,我想不通。

相关帖子

沙发
angerbird| | 2015-2-26 19:03 | 只看该作者
dma_halt_test[0]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;
   dma_halt_test[1]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;
   dma_halt_test[2]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;
   dma_halt_test[3]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;

楼上这样写的话,,岂不是dma_halt_test[3]是前几个数据的叠加?

使用特权

评论回复
板凳
angerbird| | 2015-2-26 19:04 | 只看该作者
这样写是有很大问题的。。。

使用特权

评论回复
地板
mintspring| | 2015-2-27 16:05 | 只看该作者
DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;这个里面不会是个0吧?如果是0累死都不会变化

使用特权

评论回复
5
chenzhi658|  楼主 | 2015-2-28 12:56 | 只看该作者
angerbird 发表于 2015-2-26 19:03
dma_halt_test[0]  += DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;
   dma_halt_test[1]  += DmaRegs.CH2.CONTR ...

没有啊,我是定义了数组dma_halt_test[5],并且初始化为0。然后测试啊,各个数组的元素不想关的啊。只是测试,DMA和CPU之间的关系,DMA CH1和DMA CH2切换中,CPU是什么动作?

使用特权

评论回复
6
chenzhi658|  楼主 | 2015-2-28 12:58 | 只看该作者
mintspring 发表于 2015-2-27 16:05
DmaRegs.CH2.CONTROL.bit.TRANSFERSTS;这个里面不会是个0吧?如果是0累死都不会变化

dma_halt_test[0]和 dma_halt_test[1]会计数啊

使用特权

评论回复
7
mintspring| | 2015-2-28 13:22 | 只看该作者
楼主搞明白没,我看回复看糊涂了

使用特权

评论回复
8
lovecat2015| | 2015-2-28 20:44 | 只看该作者
楼主,你的问题解决了吗

使用特权

评论回复
9
chenzhi658|  楼主 | 2015-4-2 14:13 | 只看该作者
mintspring 发表于 2015-2-28 13:22
楼主搞明白没,我看回复看糊涂了

还没有搞清楚呢,只是听人说,DMA和CPU流水线的配合

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

247

帖子

1

粉丝