阅读:1455回复:8
斑竹,请帮我呀(9052的问题)!!!我会以高分报答的
我做了一个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空间; 请高手们帮我分析下原因,我都搞了一个多星期了,还是没个头绪,先谢了,高分相送呀!!!!!!!! |
|
最新喜欢:mapofl |
沙发#
发布于: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卡毕竟不多了 |
|
板凳#
发布于:2003-08-07 18:43
你看到的是配置空间的I/O映射吧?9052的配置空间好像是128个字节。
|
|
地板#
发布于:2003-08-07 20:46
系统给出了IO的基地址范围,如何通过这些基地址对ISA进行操作啊?请帮忙
|
|
地下室#
发布于:2003-08-07 21:37
谢谢斑竹了,但你说的我能明白呀,我是向系统只申请了16个字节的空间,可他却给我分了7f呀
系统分配如下: PCIBAR0:00000000H PCIBAR1:0000C000H PCIBAR2:00000000H PCIBAR3:0000C400H PCIBAR4:00000000H 我不明白PCIBAR1和3分别是什么意思,哪个是给我分的io的基地址呀,我都试了,读时:局部总线都没信号;写时:I C400就死机了,这时局部总线的iord有方波出现。是不是我的eeprom写的有问题,还是。。。,帮忙分析下,谢谢了 |
|
5楼#
发布于:2003-08-07 21:58
第一个是9052的io空间,操作它内部的寄存器;
第二个就是你的外部空间,你硬件连接有问题,9052没受到你的数据,所以死机了,检查外部接口信号的连接 |
|
6楼#
发布于:2003-08-08 08:24
哎,太谢谢斑竹了,我好象在哪看到过关于这种说法,但当时未能理解,现在明白了,所有的分送上。
最后一个问题:为什么系统的任务管理器里只给我分的是:C000H-C07FH;而PCIBAR1是C000H,PCIBAR3是C400; 按理说C000H+偏移量=9052内部寄存器的直是吗? 那IO范围应该是:***-***? 还是这分的就有问题,谢谢!! |
|
7楼#
发布于:2003-08-08 08:34
怎么搞的呀,他总是说我没登陆论坛呀,我怎么登也不行,晕死~~
|
|
8楼#
发布于:2003-08-08 08:38
是的,基地址+偏移量就是内部寄存器的值
io范围就是0xc000到0xc07f |
|