阅读:1934回复:10
pci驱动如何操作硬件?
我知道pci驱动可以访问设备的寄存区,但是不明白驱动是怎么操作硬件的。现在有块pci卡,功能是把应用程序传来的数据高速输出,当卡上的fifo清空时发出中断,启动dma向它传输数据。
我的问题是 1。驱动怎么让卡开始工作。是设置寄存区的一个什么标志位吗?还是直接向设备地址写数据,等卡产生中断时再写……? 2。5933是不是总线主控dma方式?如果是的话就直接向缓冲区写数据就可以了是吗? 问我们的硬件人员竟然说不懂我在说什么,我郁闷。 问得像我想的一样凌乱,请大虾多费心 |
|
|
沙发#
发布于:2002-05-30 16:33
brucezh,关于驱动与应用程序之间的“互动”问题,我基本上同意你的理解。去操作硬件设备,其实就是通过驱动去设置该设备的相关寄存器。至于怎样设置寄存器,详见具体的芯片资料。
另,驱动怎么让卡开始工作,这不是我们要做的事。我们的任务是告诉位于我们底层的PCI总线类驱动程序去让我们的卡工作,就在STARTDEVICE例程中。 你用的是5933呀?它的DMA操作是Bus Master方式。其实主存与设备存储空间的数据交换是通过地地址映射来实现的。 推荐你到www.osr.com网站上下载区找一个5933的WDM驱动例子,很有用的。 |
|
|
板凳#
发布于:2002-05-30 17:10
You are a Goooooooooooooooooood boy!
|
|
|
地板#
发布于:2002-05-30 17:15
好说好说,还要请大虾多多关照
|
|
|
地下室#
发布于:2004-02-18 17:27
www.osr.com网站怎么找不到5933的WDM驱动例子?
|
|
5楼#
发布于:2004-02-27 13:16
我想问一下 PCI驱动的基本功能是完成设备的初始化对端口的读写操作,中断的设置,响应和调用以及对内存的直接读写。
他的初始化是怎么实现的 是设备本身还是用驱动来完成?? 请大虾多指教 |
|
6楼#
发布于:2004-03-02 18:32
我有完整的S5933驱动代码,并有测试程序,可以找我aming_p@sina.com
|
|
|
7楼#
发布于:2004-03-02 22:55
老兄给我一份吧。谢谢!zmmh@sohu.com
|
|
8楼#
发布于:2004-03-03 13:41
老兄,我也要一份!!
xucongqi@sina.com |
|
|
9楼#
发布于:2004-03-22 15:57
楼上的老哥可以给我一份吗?
谢谢! aimshoot@msn.com :D |
|
10楼#
发布于:2004-03-25 09:26
我也来一份,正需要内,老哥
flyhobo@163.com |
|
|