myswin
驱动小牛
驱动小牛
  • 注册日期2003-10-13
  • 最后登录2005-11-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1244回复:9

PCI9054如何从local processor 进行与host 的DMA?

楼主#
更多 发布于:2004-07-05 21:30
我看了DS自带的DMA例子,知道了一点从host发起的block DMA过程,
用KDmaTransfer定义Ready的回调函数(不知道什么时候会调用,反正第一次和最后一次一定会调用的),
初始时可以写入 PCI first address,local first address, size ,再启动就可以,
然后等待中断,中断DPC执行 KDmaTransfer->continue (不是只有全部传输结束了才会中断吗?哪为什么还要continue?)
-------------------------------------------―――――――-
如果要从local发起(因为想让local processor 发一段数据给计算机),怎样直接进行block DMA呢?如何才能得到PCI first address呢?难道先发一个中断给Host,然后让Host发起?
=========== D =========== R =========== I =========== V =========== E ---------抵制日货-------
myswin
驱动小牛
驱动小牛
  • 注册日期2003-10-13
  • 最后登录2005-11-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-06 08:56
大哥,给个思路也行啊~~





-----------------------------------------------------
                        有分吗?当然有:)
=========== D =========== R =========== I =========== V =========== E ---------抵制日货-------
myswin
驱动小牛
驱动小牛
  • 注册日期2003-10-13
  • 最后登录2005-11-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-07 16:02
没人理我,回家了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=========== D =========== R =========== I =========== V =========== E ---------抵制日货-------
aha_here
驱动小牛
驱动小牛
  • 注册日期2003-10-11
  • 最后登录2009-03-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-19 09:29
DATASHEET上说的很清楚,实际上如果用了9054的DMA控制器,那对LOCAL,计算机端不是已经对等了?!
[size=3][color=red]勤学好问[/color][/size] [img]http://www.driverdevelop.com/forum/avatar/aha_here_xiao_zu.gif[/img]
chylml
驱动牛犊
驱动牛犊
  • 注册日期2004-06-29
  • 最后登录2004-12-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-24 11:03
我也想用local 直接发起dma传输,而pc负责把缓冲区的地址写到9054寄存器。我想问一下:如果local用cpld来写9054的寄存器来启动dma操作会麻烦吗,感觉要有很多控制线。
myswin
驱动小牛
驱动小牛
  • 注册日期2003-10-13
  • 最后登录2005-11-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-25 17:13
chylml,我后来就没有再试~~
你做了结果如何啊??
=========== D =========== R =========== I =========== V =========== E ---------抵制日货-------
chylml
驱动牛犊
驱动牛犊
  • 注册日期2004-06-29
  • 最后登录2004-12-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-26 10:42
我没有试阿,因为我的中断频率较慢,所以是这个方法:local先发一个中断给Host,然后让Host发起
myswin
驱动小牛
驱动小牛
  • 注册日期2003-10-13
  • 最后登录2005-11-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-26 21:51
chylml,现在只能这样了,郁闷!~~~~~~~~~~~``
=========== D =========== R =========== I =========== V =========== E ---------抵制日货-------
vv6
vv6
驱动牛犊
驱动牛犊
  • 注册日期2002-03-01
  • 最后登录2011-06-17
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望12点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-27 13:35
DMA传输长度、首地址、传输方向用计算机配置,DMA启动寄存器用Local Process配置。
myswin
驱动小牛
驱动小牛
  • 注册日期2003-10-13
  • 最后登录2005-11-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-27 22:50
____________________________---
DMA启动寄存器用Local Process配置
_________________________________
就是读写不起来
=========== D =========== R =========== I =========== V =========== E ---------抵制日货-------
游客

返回顶部