szyangyufeng
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2003-11-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1406回复:4

请教PCI 驱动问题---谢谢!

楼主#
更多 发布于:2003-07-21 17:37
在DS DRIVER WORK用向导创建程序的时候有几个ID我该怎么填,是否要先去知道PCI卡的厂商ID,设备ID,还有副厂商ID和副设备ID,是否必须填写对应呢?
我怎么去操作PCI卡的I/0寄存器,要求设备上电后要为各通道的各端口设置为输入模式(即要向每个端口的CFG寄存器写入9B),在我的向导生成代码中我是否该在START DEVICE函数中完成此功能,我该怎样实现往CFG寄存器写入9B呢?谢谢!
cysnew
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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中断

除了幸福,还有自由和平静。
szyangyufeng
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2003-11-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-22 08:31
我能不能把我的代码MAIL给你,你帮我看看,然后我把我的要求也给你,你帮我看看该怎么写,谢谢!
xiaojuncheng
驱动牛犊
驱动牛犊
  • 注册日期2003-06-19
  • 最后登录2003-09-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-27 11:50
m_IoPortRange0.outd(INTCSR, 0X40100);//表明允许PCI中断和DMA通道0中断


请问 INTCSR 地址怎么确定的
我在ds上看到是
#define INTCSR 0x68
#define dmamode0 0x80
......
他们的值是怎么定义的,从那可以知道是0x68。
还有‘控制字0X40100,从那可以找到哪方面的资料???
grant
驱动老牛
驱动老牛
  • 注册日期2001-05-14
  • 最后登录2007-04-13
  • 粉丝0
  • 关注0
  • 积分350分
  • 威望35点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-28 10:37
m_IoPortRange0.outd(INTCSR, 0X40100);//表明允许PCI中断和DMA通道0中断


请问 INTCSR 地址怎么确定的
我在ds上看到是
#define INTCSR 0x68
#define dmamode0 0x80
......
他们的值是怎么定义的,从那可以知道是0x68。
还有‘控制字0X40100,从那可以找到哪方面的资料???


要看PCI Controller的芯片手册。
看起来像是用AMCC5933的,可以在www.amcc.com上查到。

[编辑 -  7/28/03 by  grant]
助人乃快乐之本 有人给分就更快乐了 :-)
游客

返回顶部