在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2282|回复: 1

[求助] MPC8321的链式DMA不运行,贴内描述了程序,求教各路高人。

[复制链接]
发表于 2013-2-20 17:05:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
PPC的直接DMA已经搞定。具体的程序拿不出来,公司的机器在内网,又封了USB……
按照PDF上的说明,首先在内存中为描述符建立了一个结构体数组,结构体结构示意如下:
uint32 Sour;  //源地址
uint32 NC1;  //描述符的要求,下同
uint32 Desc; //目的地址
uint32 NC2;
uint32 NDA;  //下一个描述符的首地址
uint32 NC3;
uint32 Num;//字节计数
uint32 NC4;

结构体填充之前已经经过了字节序掉换,变成了小端格式,NDA是数组下一元素的首地址,已经左移5位,以适合寄存器。

按照PDF说明,首先初始化CDAR寄存器(当前描述符),把数组的首地址赋给这个寄存器。然后检查DMA状态,空闲的情况下,设置MR。
设置了源地址保持和16位宽度两个属性。然后先清零再置位CS,启动DMA。
这时读寄存器,SR为0x84,第7位(传输出错)和第3位(正在传输)置位,CDAR和NDAR为0,感觉DMA没有读入描述符。
然后实验,除了初始化CDAR,还初始化了NDAR,结果差不多,但是第三位没有置位了。

看PDF上,DMA功能非常简单,但是用起来就是大麻烦啊。很多东西,对知道的人来说就是一句话,初上手的却得花费一周……
请搞过的朋友赐教,谢谢。

PS:如果有用PPC,在为直接模式DMA无法启动而头痛的朋友,不妨查看下SCCR寄存器,就是时钟设置里面那个管PCI时钟的寄存器,DMA的时钟
和PCI在一起,如果不开这个,DMA是不工作的。这个问题PDF上可是没提过的,年前很是让我头痛了一下。
发表于 2013-3-5 11:26:52 | 显示全部楼层
这个片子没用过,可以看下ERRATRA 里面有没有什么提示
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-2-23 06:59 , Processed in 0.031493 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表