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

斑竹,请帮我呀(9052的问题)!!!我会以高分报答的

楼主#
更多 发布于:2003-08-07 18:21
我做了一个ISA到PCI转换的卡:
板上资源:只有9052,93lc46和一个8M的晶震;
目的:只使用ISA的i/o资源280h-300h;不需MEM和中断;
系统:98/2000都试过了;
      用plxmon读eeprom正常,写也正常;
      能在windows下安装windriver生成的驱动;
问题:1。局部总线没有任何反映(iord、iowr、la08);
      2。我要求系统分给我16字节的io资源,他却不管我怎么写都给我分7fh的io空间;
    请高手们帮我分析下原因,我都搞了一个多星期了,还是没个头绪,先谢了,高分相送呀!!!!!!!!

最新喜欢:

mapoflmapofl
zxw_top
驱动大牛
驱动大牛
  • 注册日期2003-07-18
  • 最后登录2020-04-26
  • 粉丝0
  • 关注0
  • 积分1116分
  • 威望2537点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-08-07 18:40
pci总线设备是即插既用设备,你固定使用io端口0x280-300是没有用的,你可以在win98下查看设备使用的资源,里面有io端口基地址,只有映射在该地址空间内部的地址才能被你的卡识别和操作。分配0x7f的空间是因为你定义io空间的大小为128字节。
可以用以下方法实现你的要求:
    你申请一个io空间,大小为1k字节(pci2.2协议不建议使用
     超过256字节的io空间,但仍然可以满足你的分配要求),
     比如系统给你的端口基地址为0xc000,地址范围就是0xc000至
     0xc400,那么你操作0xc280至0xc300的范围,你外部接口既isa
     总线只取输出的低10位地址,仍然可以保持范围在0x280至
     0x300.
但是我还是建议你采用浮动地址设计,现在isa卡毕竟不多了
  
xsc_driver
驱动牛犊
驱动牛犊
  • 注册日期2002-09-30
  • 最后登录2014-06-25
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-07 18:43
你看到的是配置空间的I/O映射吧?9052的配置空间好像是128个字节。
dyxing2000
驱动小牛
驱动小牛
  • 注册日期2003-04-19
  • 最后登录2012-04-25
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望50点
  • 贡献值0点
  • 好评度50点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-07 20:46
系统给出了IO的基地址范围,如何通过这些基地址对ISA进行操作啊?请帮忙
houleixd
驱动牛犊
驱动牛犊
  • 注册日期2003-07-17
  • 最后登录2005-04-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-07 21:37
谢谢斑竹了,但你说的我能明白呀,我是向系统只申请了16个字节的空间,可他却给我分了7f呀
系统分配如下:
PCIBAR0:00000000H
PCIBAR1:0000C000H
PCIBAR2:00000000H
PCIBAR3:0000C400H
PCIBAR4:00000000H
我不明白PCIBAR1和3分别是什么意思,哪个是给我分的io的基地址呀,我都试了,读时:局部总线都没信号;写时:I C400就死机了,这时局部总线的iord有方波出现。是不是我的eeprom写的有问题,还是。。。,帮忙分析下,谢谢了
zxw_top
驱动大牛
驱动大牛
  • 注册日期2003-07-18
  • 最后登录2020-04-26
  • 粉丝0
  • 关注0
  • 积分1116分
  • 威望2537点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-08-07 21:58
第一个是9052的io空间,操作它内部的寄存器;
第二个就是你的外部空间,你硬件连接有问题,9052没受到你的数据,所以死机了,检查外部接口信号的连接
houleixd
驱动牛犊
驱动牛犊
  • 注册日期2003-07-17
  • 最后登录2005-04-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-08 08:24
    哎,太谢谢斑竹了,我好象在哪看到过关于这种说法,但当时未能理解,现在明白了,所有的分送上。
    最后一个问题:为什么系统的任务管理器里只给我分的是:C000H-C07FH;而PCIBAR1是C000H,PCIBAR3是C400;
    按理说C000H+偏移量=9052内部寄存器的直是吗?
    那IO范围应该是:***-***?
还是这分的就有问题,谢谢!!
houleixd
驱动牛犊
驱动牛犊
  • 注册日期2003-07-17
  • 最后登录2005-04-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-08 08:34
怎么搞的呀,他总是说我没登陆论坛呀,我怎么登也不行,晕死~~
zxw_top
驱动大牛
驱动大牛
  • 注册日期2003-07-18
  • 最后登录2020-04-26
  • 粉丝0
  • 关注0
  • 积分1116分
  • 威望2537点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2003-08-08 08:38
是的,基地址+偏移量就是内部寄存器的值
io范围就是0xc000到0xc07f
游客

返回顶部