阅读:1507回复:5
DDK开发PCI读具体地址的问题
因配合硬件开发,用DDK写了个驱动框架。
Driver里面有DeviceIoControl等功能,另外还有一个Write功能(主要用RtlCopyMemory执行从ExAllocatePool分配的缓存读到systembuffer的功能)。 测试例子里面使用了WriteFile、ReadFile等函数,发现确实是读写进去了,但不知道具体的地址是什么地方去了。 请问:该如何读写具体的memory、IO等空间的值?能否在测试程序中发一个“读写某地址的值”,然后“返回该值”? |
|
沙发#
发布于:2007-01-25 12:57
在应用程序里如果是writefile,在buf的第一个低位字节写你的地址,高位写你的数据,在驱动程序里用outb()写到具体的空间里就行了,建议你看看武安河的书,应该是这样,我也是新手
|
|
板凳#
发布于:2007-01-29 09:40
武安河的是DriverStudio。在DDK里面如何读写基地址为base0、base1等的偏移地址?他们是如何映射的?
另外我使用DMA(外部单独的硬件)搬数据,配给DMA的是物理地址,如何将DMA搬数据到我PC测试程序中malloc随机分配的内存中? |
|
地板#
发布于:2007-01-30 22:49
它不是有Memory1/2,IO1/2等等吗,分别对应你的Memory空间和IO空间,比如你就用Memory2.outd(address,data)等就可以了。
|
|
地下室#
发布于:2007-03-14 14:35
DDK开发的,直接WRITE_REGISTER_ULONG就行,或者内存读写复制都行,查查DDK文档。
例:WRITE_REGISTER_ULONG(pdx->kvMembase[2] + offset,value) |
|
5楼#
发布于:2007-04-05 19:49
赞同楼上兄弟的观点
|
|