在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 5986|回复: 10

[转帖] PCI卡设计心得(三)

[复制链接]
发表于 2003-8-19 09:49:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
[转帖] PCI卡设计心得(三)
(转载,作者不详) (续上贴)
下面是我的inf文件

[Version]
Signature=$CHICAGO$    ;必须这么写
Class=PLX              ;可以自己改
Provider=%SHENLI%      ;制作者
[Manufacturer]
%Manufacture%=SECTION0
[SECTION0]
%my_card%=my.install,PCI\VEN_10b5&DEV_9050   ;my.install表示了安装过程所要做的事,
[my.install]
CopyFiles=CopyFiles_PLX10b5                   ;主要做拷贝文件和注册表添加
AddReg=AddReg_PLX10b5

[CopyFiles_PLX10b5]
Vxd8_25.vxd
[AddReg_PLX10b5]
HKR,,DevLoader,0,Vxd8_25.vxd

[Strings]
Manufacture="BUAA202"                         ;这些信息会在安装时显示
my_card="LX9052"
   
下面提供了vxd中查询pci卡的代码,这个代码是参考清华bbs驱动版精华区huyuguang大虾的大作,他提供了更详细的代码
有兴趣可以参考。
BOOL findpci(DWORD DeviceVendor,PCIINF *pciinf)//我的卡的DeviceVendor=0x905210b5
{
DWORD io_cf8;
DWORD io_cfc;
int i;
DWORD buf[16];
io_cf8=0x80000000;
for(;;)
{
  DWORD_OUT(0xcf8,io_cf8);//向0xcf8输出双字 io_cf8
  io_cfc=DWORD_IN(0xcfc); //从0xcfc读入双字
  if(io_cfc==DeviceVendor)//find  pci9052
  {
   for(i=0;i<16;i++)
   {
    DWORD_OUT(0xcf8,io_cf8+4*i);
    buf=DWORD_IN(0xcfc);
   }
   pciinf->VendorID=(WORD)(buf[0]&0xffff);
   pciinf->DeviceID=(WORD)((buf[0]&0xffff0000)/0x10000);
   pciinf->Command=(WORD)(buf[1]&0xffff);
   pciinf->Status=(WORD)((buf[1]&0xffff0000)/0x10000);
   pciinf->RevisionID=(UCHAR)(buf[2]&0xff);
   pciinf->CacheLineSize=(UCHAR)(buf[3]&0xff);
   pciinf->LatencyTimer=(UCHAR)((buf[3]&0xff00)/0x100);
   pciinf->HeaderType=(UCHAR)((buf[3]&0xff0000)/0x10000);
   pciinf->BIST=(UCHAR)((buf[3]&0xff000000)/0x1000000);
   pciinf->BaseAddresses[0]=buf[4];
   pciinf->BaseAddresses[1]=buf[5];
   pciinf->BaseAddresses[2]=buf[6];
   pciinf->BaseAddresses[3]=buf[7];
   pciinf->BaseAddresses[4]=buf[8];
   pciinf->BaseAddresses[5]=buf[9];
   pciinf->SubsystemVendorID=(USHORT)(buf[11]&0xffff);
   pciinf->SubsystemID=(USHORT)((buf[12]&0xffff0000)/0x10000);
   pciinf->InterruptLine=(UCHAR)(buf[15]&0xff);
   pciinf->InterruptPin=(UCHAR)((buf[15]&0xff00)/0x100);
   pciinf->MinimumGrant=(UCHAR)((buf[15]&0xff0000)/0x10000);
   pciinf->MaximumLatency=(UCHAR)((buf[15]&0xff000000)/0x1000000);
   break;
  }
  else
   io_cf8+=0x800;
  if(io_cf8>=0x80ffff00)
   return 1;
}
return 0;
}
    以上都是我这次制作卡的一些心得,还有很多不清楚的地方,写出来只是想让感兴趣的pci门外汉了解一下,但愿能有所帮助。肯定有很多错误,希望各位大虾指正,但求不会误人子弟。pci大虾见笑了
(全文完)


发表于 2003-8-19 20:20:40 | 显示全部楼层

[转帖] PCI卡设计心得(三)

感谢sunyrain。
 楼主| 发表于 2003-8-20 15:45:18 | 显示全部楼层

[转帖] PCI卡设计心得(三)

不谢,我也是在别的论坛上看到感觉对我挺有帮助就给转过来了,希望对大家都有帮助!
发表于 2004-3-31 09:40:54 | 显示全部楼层

[转帖] PCI卡设计心得(三)

可以写点关于PCMCIA卡设计的心得嘛?
发表于 2004-4-1 09:08:25 | 显示全部楼层

[转帖] PCI卡设计心得(三)

发表于 2004-6-4 10:32:59 | 显示全部楼层

[转帖] PCI卡设计心得(三)

感謝~~
发表于 2007-6-1 16:48:59 | 显示全部楼层
写点心得啊
发表于 2007-6-13 10:11:25 | 显示全部楼层
支持,good
发表于 2007-8-29 16:30:21 | 显示全部楼层
受教!!!!!!!!!!!
发表于 2007-9-27 22:52:34 | 显示全部楼层
支持,good
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 13:54 , Processed in 0.090642 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表