| 
					阅读:1228回复:6
				 菜鸟问题:这个isa问题解决了,疯狂给分,要多少分给多少分。只要你回答,都有分,灌水都算数!!!!
					 大虾们  
 我正在用driverwork做一个非pnp的isa卡驱动, 地址:0x340-0x341, 在inf中我是这么写的:ioconfig=340-341 这个写了之后还用向系统 reaport吗?怎么reaport呢? 然后怎么在驱动中从340里面读写数据呢?用READ_PORT_UCHAR() WRITE_PORT_UCHAR()? 还是利用DriverWorks中的KioRangle类的in和out? 但是如果用READ_PORT_UCHAR()的话需要一个dx参数,我怎么能得到这个参数呢? 如果用KioRangle类的话,因为有两个端口,我要生成两个对象? 还是说只生成340端口这一个就行了?然后341的那个端口的offset=1? 比如:KioRangle port; port.inb(offset); port.outb(offset,xxx); 大家准备着得分吧! | |
| 
 | 
| 沙发#发布于:2004-04-16 22:28 
					大家怎么不来拿分呢? :mad:				 | |
| 
 | 
| 板凳#发布于:2004-04-17 21:21 
					如果用driverstudio开发的话,在Wizard生成框架时,只需设置一个Io即可,并且io的长度就是你的ISA卡占几个地址数,当然这个长度也可以在inf文件中的ioconfig中修改:ioconfig=2@0340-0341,其中@前的2表示你的地址数。在驱动中就不需要标明你的地址了,它会在startdevice里读取你在inf文件里设置的地址,并把它当作基地址。当进行IO读写时,如果你想往0x341地址写数据,如下:
 KIoRange port; port.outb(0x1,dada);//此处的0x1是你的基地址的偏移 或ULONG status=port.inb(0x0)//从0x340地址读数 其中的基地址是由inf文件安装时决定的,port的读写所用的是偏移! Are you clear? | |
| 
 | 
| 地板#发布于:2004-04-18 18:35 
					thank you 
 it very good 给分!!!! | |
| 
 | 
| 地下室#发布于:2004-04-19 10:03 
					请问你在做驱动时如何得到ISA的内存地址的?我现在也在做ISA驱动windriver无法取得内存地址,需要我手动设置。请问如何才能得到呀????				 | |
| 5楼#发布于:2004-04-19 12:17 请问你在做驱动时如何得到ISA的内存地址的?我现在也在做ISA驱动windriver无法取得内存地址,需要我手动设置。请问如何才能得到呀???? 不好意思,我也是才开始学WDM驱动,了解的很少。我所做的ISA卡只涉及到IO地址,关于内存地址我也没有研究,暂时不能告知!另外,对WinDriver我不熟悉,在DRIVESTUDI中有一个KMemoryrange类,可看一下 | |
| 
 | 
| 6楼#发布于:2004-04-19 15:59 
					我要做的isa卡的驱动也只是涉及io地址。但是我不知该如何得到此卡的io地址。查看相关资料有提及到将操作地址228H由计算机的数据线的D0-D7打入。能否认定228H就是起始地址。卡上的内存为2KB字节,如果228H是起始地址那它的终止地址是多少呢???				 | |
 
							
 
				