guerrilla
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2007-10-30
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:2096回复:14

ISA地址疑问

楼主#
更多 发布于:2004-11-05 13:35
我做了一块极其简单的基于isa总线的板子,上面就一块EPM7128 CPLD芯片,用到ISA低20位地址线,设置两个地址,分别为 00000H和00001H,分别访问7128两个8位存储空间。
我在驱动Inf文件中logconfig section中如下设置:
ConfigPriority=DESIRED
MemConfig=40@00000-000040%fffffffe ; MemoryRange0;
但是加载驱动后,设备类表中显示此设备资源无法分配,显示00000-0003f空间为system board占用,资源冲突。
所以我想请教,怎样设定内存空间与此ISA存储空间映射?
我用的是xpddk+ds2.7,在xp操作系统下编写驱动程序。
望高手指导!
guerrilla
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2007-10-30
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-06 19:00
怎么没有人帮助我呢?
能不能给我点建议呢?
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-06 20:01
你说的那段地址当然是不能申请到的,因为主板用了这段地址,用户地址应该是从0x200之上0x3ff 之间的这段.


我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
guerrilla
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2007-10-30
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-06 20:46
那是不是说,我硬件电路地址不能这么设计,不能用0x00000,和0x00001,而只能设计成0x200-0x3ff中的任意地址,然后才能再inf文件中申请呢?
guerrilla
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2007-10-30
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-07 20:27
这么多老大,怎么就不能帮帮小弟我呢?
亟盼你们的帮助阿
谢谢了!!!
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
5楼#
发布于:2004-11-08 18:25
ISA卡的地址应该设计成可以用跳线调整,不然叫用户怎么用?

[编辑 -  11/8/04 by  seaquester]
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
airpig
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2006-06-26
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-18 13:58
如果你做硬件,应该先查阅你的应用环境的资源配置。
如果你使用7128,地址是很好改的。
如果你使用I/O端口地址访问,在98下不用做驱动
建议你使用0x980--0x9ff这一段地址空间
一直都想飞
hubei_jiangwei
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-18 15:56
我现在是在98下做的ISA卡,也是用CPLD来做地址译码的,也和楼主一样将20根地址线都引入到CPLD里面了,但我却不知道该对方对ISA里面寻址。用Outp()?地址应该怎么分配?
guerrilla
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2007-10-30
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-11-19 10:42
你的意思是我该用i/o端口来访问7128?
不能用内存映射的方式吗?
我总觉得要用内存映射的话,我是不是该再加一个外接双口RAM?
airpig
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2006-06-26
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-11-23 14:54
我在做PCI驱动的时候是用内存映射的方式来访问PCI卡的,因为PCI协议支持即插即用规范,在启动后,PCI卡句柄应用程序可以通过访问驱动程序得到(WDM例程写的很清楚),当然我使用了Driverwork提供的类库,那么访问PCI卡时只需要使用偏移地址就OK了。我想你设计的ISA接口卡上的7128程序没有很好的满足PnP规范,启动时系统无法分配基地址空间给你,你如果使用内存映射方式,不知道如何能使用偏移地址去访问。实际上如果你在98下,无需驱动程序,硬件采用端口I/0映射,可以使用VC++的端口地址访问函数_outpw or _inpw 等函数直接访问。地址译码如果不要求很高的话,只用A11-A4就可以了,我使用的地址空间在0x0980--0x09f0之间,多数主板保留了这一空间,访问比较可靠,具体的地址空间需要查阅你的主板资料,目标板可用跳线设置地址。
如果你不用DMA方式,ISA的速度大概只能做到1M左右。
所有的这些在你的7128中设计的ISA接口时序满足你的主板条件下才可以实现。因为ISA不是一个严格的规范,各个主板制造商的实现可能是有细微差异的。所以你的首要工作是用示波器或者逻辑分析仪弄清楚你的主板的ISA时序。
这是我得一点浅见,仅供参考
一直都想飞
guerrilla
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2007-10-30
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-11-23 16:59
你说多数主板保留了这段地址,是什么意思
比如说我工控机系统报告:0x000000-0x09ffff为system board 地址空间,那我的基地址能设计?
在其中吗?
地址映射能用这段空间吗?
airpig
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2006-06-26
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-11-25 09:26
guerrilla,系统保留这部分I/O端口资源就是系统没有占用,你可以用这部分资源的意思。建议你用I/O端口地址映射方式,修改winio例程(在网上可以搜索到的)来做驱动。
我以为你自己设计的7128硬件程序满足不了PNP规范,不能响应系统内存映射自动地址分配,所以你用内存地址映射方式去访问是不可能的。在即插即用协议中,你只能申请所需要的地址空间,不能指定基地址,基地址是由主板BIOS自动分配的。
一直都想飞
chhj001
驱动牛犊
驱动牛犊
  • 注册日期2004-11-08
  • 最后登录2009-01-04
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-11-26 08:55
我一般映射为D0000-DF000段,因为这段为扩展用户使用。
guerrilla
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2007-10-30
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-11-26 10:51
谢谢,明白了!!!
不过这段地址只是内存映射时使用
用i/o映射不能这样
我的wdm驱动程序搞定了
不过还是谢谢你的帮助!
lucaer
驱动老牛
驱动老牛
  • 注册日期2004-09-21
  • 最后登录2007-09-26
  • 粉丝0
  • 关注0
  • 积分518分
  • 威望60点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-11-29 11:21
如果你做硬件,应该先查阅你的应用环境的资源配置。
如果你使用7128,地址是很好改的。
如果你使用I/O端口地址访问,在98下不用做驱动
建议你使用0x980--0x9ff这一段地址空间


我就用的是7128 不错
只要回帖,别忘给分。 支持灌水,多多送分。 [img]http://www.hotik.com/sign.png[/img]
游客

返回顶部