现有一块PCI卡,实现了IO端口和专用内存,我已经能够访问IO ,但是如何访问memory呢?我计划在WDM中的RetrieveResources(...)这个常规自定义函数获得memory基址,然后使用READ/WRITE_REGISTER_ULONG 进行读写,这样行么?那位...
全文
回复(9) 2004-06-17 17:52 来自版块 - 内核编程
表情
AllenZh另外,为了排除硬件的memory访问逻辑有问题,我得首先证明驱动没问题。于是希望对其他已知正确板卡测试。如:显卡。通过资源查看,显卡使用DA000000--DAFFFFFF内存地址(三块中之一),于是我直接在驱动中将dx->memstartAddress改成与之对应的参数,...(2004-06-23 09:12)
AllenZhAllenZh,想给分你,怎么老是给不了?没法登陆论坛。有什么办法? 分并不重要,到现在为止我也没有给任何人给过分,所以我也不知道(有几次给分好象都失败了)(2004-06-23 09:09)
edbertAllenZh,想给分你,怎么老是给不了?没法登陆论坛。有什么办法? (2004-06-22 17:37)
edbert现在情形是这样的,写进的值从硬件引出,通过示波器看,是正确的,但是读出的仍不对,可能是硬件的读逻辑有问题,还得再改改。(2004-06-22 17:36)
edbert另外,为了排除硬件的memory访问逻辑有问题,我得首先证明驱动没问题。于是希望对其他已知正确板卡测试。如:显卡。通过资源查看,显卡使用DA000000--DAFFFFFF内存地址(三块中之一),于是我直接在驱动中将dx->memstartAddress改成与之对应的参数,...(2004-06-20 22:07)
edbert板子没有使数据改变,写进什么,读出应该是什么。 另外,在加载驱动程序的时候,我在ListResource 和RetrieveResource查看了资源的内存分配,ListResource中传入的资源参数是IrpStack->Parameters.StartDevice.A...(2004-06-20 21:54)
AllenZh这个应该没有问题,但不知道你的fesource是否引用了正确的资源地址。 另外如果你对内存读有变这也可能,因为PCI卡硬件是否会修改这里的数据呢?如果要,变是当然的。(2004-06-19 22:37)
edbert我大概也就是按照这个思路进行的,部分源码如下: case CmResourceTypeMemory: dx->bHaveMem = true; dx->GotPortOrMemory = true; dx->memStart...(2004-06-19 15:21)
seaquestermemory地址需要MmMapIoSpace,然后可以用READ/WRITE_REGISTER_ULONG 读写(2004-06-17 20:13)

返回顶部