suyuanping
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2172回复:12

100分求PCI9054DMA中断

楼主#
更多 发布于:2003-12-17 19:50
我这段时间弄了个数据采集卡,采用DMA传输方式,A/D转换后的数据送入RAM中保存,空间是512K,当写满后要求主机从RAM中读取数据到内存中,但我不知道怎么样才能通知主机开始DMA传输,能不能用本地中断在驱动程序中引起一次读操作,在read()中设置DMA传输开始,如果这样的话,在驱动程序中怎样才能引起读操作呢?
amaosonic
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2004-11-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-18 08:47
在Windows 2000/XP WDM设备驱动程序开发  这本书里,有9054DMA中断的实例,你可以找找看。
该给分时就给分.........
amaosonic
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2004-11-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-18 09:02
具体点说,9054设置在DMA工作方式下,主机设定本地和PCI端的起始地址,传输字节数和传输方向,有软件设置DMA传输的方式(单周期,四个突发数据周期或永远突发直至传输结束),另外不知你用什么开发的,要是用Windriver来编写设备驱动程序的话,它针对PLX的9054和AMCC的专用接口芯片特别编写了API函数包,这些函数能够方便地实现中断处理、DMA传输、I/O操作、内存映射以及即插即用等功能,另外WinDriver提供了许多例程,可以利用它们来产生自己驱动程序的基本框架
该给分时就给分.........
suyuanping
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-18 09:31
谢谢各位的解答,我用的是driverwork作驱动开发,还没有windriver这方面的资料,如果amaosonic兄有的话能不能给兄弟一份,我参考了武安河的那本书,但它的中断只是由应用程序发出的DMA读FIFO,而我的中断是由本地设备发出,用来通知主机进行一次DMA传输,中断信号由LINT#输入,而DMA传输结束PCI9054还会再发出一个DMA传输结束中断,因此我的驱动中有两个中断服务程序,他们分别由两个中断线产生,INTA#和INTB#,另外不知BTERM#信号要不要产生
amaosonic
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2004-11-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-18 13:44
书的话,你已经有了吧?  软件本站好像就可以下的了. 或是你任意找个破解版都可以download 了。
该给分时就给分.........
wanghb369
驱动牛犊
驱动牛犊
  • 注册日期2003-02-25
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-10 10:32
suyuanping大侠:
  我正在用9054 做数据采集卡。使用commonbuf block dma ,用driverworks 做驱动,dma 传输不正常。
  请教,你的问题解决了吗,能否说说如何解决。


    
 
makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-02-10 15:13
有个贴子上有人说用DRIVER STUDIO 3。0就没问题了。
fix DMA的一个什么错误
julan
驱动小牛
驱动小牛
  • 注册日期2001-11-23
  • 最后登录2005-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-02-11 10:16
amaosonic兄,我用的也是9054+windriver,都能dma了,就是dmastart dmaclose一次,才能产生一次中断,dma中断里判断dmais done后读数据,可是怎么就一次啊!


 
echo
suyuanping
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-02-13 19:45
wanghb369兄,我的问题已解决,我是在应用程序中发出一个读数据请求的,采用通道0  BLOCK DMA方式,在驱动程序中首先设置好通道参数,在STARTDMA()函数中设置,当驱动程序接受到读数据IRP请求包时启动DMA传输,数据传输完毕产生DMA中断,然后在中断程序中禁止和清除中断位,同时调用延时调用程序来完成数据传输到应用程序缓冲区中
julan
驱动小牛
驱动小牛
  • 注册日期2001-11-23
  • 最后登录2005-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-02-17 16:05
中断和dma读数一起用?
还是dma channel的中断?
echo
dnykang
驱动牛犊
驱动牛犊
  • 注册日期2002-01-08
  • 最后登录2006-11-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-02-18 11:04
suyuanping 你说的那样不行哟,你是怎样创建一个设备控制器的哟
dnykang
驱动牛犊
驱动牛犊
  • 注册日期2002-01-08
  • 最后登录2006-11-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-02-18 11:08
julan你好,怎样调用PCI的RAW驱动呀
julan
驱动小牛
驱动小牛
  • 注册日期2001-11-23
  • 最后登录2005-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-02-19 09:03
dnykang,我没明白raw驱动you said.
echo
游客

返回顶部