阅读:1406回复:4
请教PCI 驱动问题---谢谢!
在DS DRIVER WORK用向导创建程序的时候有几个ID我该怎么填,是否要先去知道PCI卡的厂商ID,设备ID,还有副厂商ID和副设备ID,是否必须填写对应呢?
我怎么去操作PCI卡的I/0寄存器,要求设备上电后要为各通道的各端口设置为输入模式(即要向每个端口的CFG寄存器写入9B),在我的向导生成代码中我是否该在START DEVICE函数中完成此功能,我该怎样实现往CFG寄存器写入9B呢?谢谢! |
|
沙发#
发布于:2003-07-21 20:57
1.在用向导生成文件的时候,如果你做的是PCI卡,必须要填写DEVICE_ID和VENDOR_ID的,否则怎么会知道其他的值。
2.用向导生成的文件中,你的PCI寄存器都被映射成I/O空间或者Memory空间. 比如说PLX9054,BAR0为内存访问寄存器空间,BAR1为I/O访问寄存器空间,对应的有m_IoPortRange0。这个对象就有相应的寄存器读写函数: m_IoPortRange0.outd(INTCSR, 0X40100);//表明允许PCI中断和DMA通道0中断 |
|
|
板凳#
发布于:2003-07-22 08:31
我能不能把我的代码MAIL给你,你帮我看看,然后我把我的要求也给你,你帮我看看该怎么写,谢谢!
|
|
地板#
发布于:2003-07-27 11:50
m_IoPortRange0.outd(INTCSR, 0X40100);//表明允许PCI中断和DMA通道0中断
请问 INTCSR 地址怎么确定的 我在ds上看到是 #define INTCSR 0x68 #define dmamode0 0x80 ...... 他们的值是怎么定义的,从那可以知道是0x68。 还有‘控制字0X40100,从那可以找到哪方面的资料??? |
|
地下室#
发布于:2003-07-28 10:37
m_IoPortRange0.outd(INTCSR, 0X40100);//表明允许PCI中断和DMA通道0中断 要看PCI Controller的芯片手册。 看起来像是用AMCC5933的,可以在www.amcc.com上查到。 [编辑 - 7/28/03 by grant] |
|
|