阅读:1164回复: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是起始地址那它的终止地址是多少呢???
|
|