peter_wu
驱动小牛
驱动小牛
  • 注册日期2002-03-14
  • 最后登录2008-10-26
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1762回复:5

我的PLX 9052 PCI 卡为什么一读它就当机了呢?

楼主#
更多 发布于:2004-07-19 15:27
我一执行这个函数,winxp就当机重启了,为什么呢,我的卡绝对是好的.我想自己做一个driver.
if (!DeviceIoControl(hDevice,
PCI1753_IOCTL_800_ReadBase0,
bufInput,
IOCTL_INBUF_SIZE,
bufOutput,
IOCTL_OUTBUF_SIZE,
&nOutput,
NULL)
  )
{
printf("ERROR: DeviceIoControl returns %0x.", GetLastError());
Exit(1);
}

printf("\n------>data read : %x",bufOutput[0]);  //add
  )
有分
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-07-19 20:48
用户被禁言,该主题自动屏蔽!
peter_wu
驱动小牛
驱动小牛
  • 注册日期2002-03-14
  • 最后登录2008-10-26
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-20 09:27
谢谢猫兄的回复,
是这样的,我有一片PLX 9052 PCI 介面卡,板子是好的,原先的driver也能用,但没有源码,想自己做一个driver,我用的是ds2.7生成的模板
来写的,只增加了一点点代码而已,如下:
请问我应该从哪里下手来进行分析呢?好象没办法调试,一执行到这里就系统就重启.是否是base address0位址有问题呢?
在属性栏内查看此卡的输入输出范围是"d000~d0ff".
void Test_PCI1753_IOCTL_800_ReadBase0(void)
{
    ULONG bufOutput[1]; // Output from device
    ULONG nOutput; // Count written to bufOutput
// Call device IO Control interface (PCI9054_IOCTL_800_ReadBase0) in driver
printf("\n----------- ready for reading Base0 -----------");
if (!DeviceIoControl(hDevice,
PCI1753_IOCTL_800_ReadBase0,
NULL,
0,
bufOutput,
sizeof(bufOutput),
&nOutput,
NULL)
  )
{
printf("\nERROR: DeviceIoControl returns %0x.", GetLastError());
Exit(1);
}
    printf("\n------>data read : %x",bufOutput[0]);
}

有分
peter_wu
驱动小牛
驱动小牛
  • 注册日期2002-03-14
  • 最后登录2008-10-26
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-22 11:14
已经ok了.
但还有一个疑问:
我现现能对pci9050进行读写操作了,但是我如何知道它控制的是9050的哪个pin脚呢?
如我向Bar0传送一个值是0x90, 写进去之后再读出来,核对是正确的.
但是我想知道是哪个pin脚产生的,你知道吗?
有分
peter_wu
驱动小牛
驱动小牛
  • 注册日期2002-03-14
  • 最后登录2008-10-26
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-22 16:43
已经可以进行读写操作了,但是想知道一些原理及用法.
如:
我向编移地址0x00写入0x00;
但这是干什么用呢?
是不是可以理解为向PLX 9052 Local bus LAD[31-0]送出的值是0x00呢?
有分
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2004-07-22 17:20
用户被禁言,该主题自动屏蔽!
游客

返回顶部