阅读:1918回复:8
PCI9030在915系列主板上的问题
用PCI9030开发了一块板卡,在PIII,PIV系列的主板(芯片组如815,845,848,865,875)上运行的非常好,写板卡的数据流量120MByte/S,读板卡的数据流量1.6MByte/S。但板卡插到915的主板里,运行速度相当慢,写板卡数据流量40MByte/S,读板卡数据流量1.6MByte/S. 我怀疑是驱动的问题,有谁遇到过吗?
|
|
沙发#
发布于:2005-06-05 14:21
我也碰到同样的问题,我观察了PCI总线的Frame信号,发现在915主板上没有Burst传输,都是单个的,而在老主板上都是很长的Burst
wistful,电话多少,我们聊聊 我的电话:013971057780 |
|
板凳#
发布于:2005-06-05 15:40
还有qq:179483467
msn: eebyte@hotmail.com |
|
地板#
发布于:2005-06-06 08:59
9030在915主板上的问题,是驱动的问题。如果只是向PCI板卡写数据,不需要回读,在地址映射函数里增加下面一个属性PAGE_WRITECOMBINE,原属性为PAGE_READWRITE | PAGE_NOCACHE。如果不知在哪儿加,请查找PAGE_READWRITE关键字。这种解决办法可以解决写的问题,如果数据回读,用指针一个一个回读,没有问题,如果用MEMCPY函数回读,有时会死机。
|
|
地下室#
发布于:2005-06-06 09:03
非常感谢wistful大哥,我试试看。
|
|
5楼#
发布于:2005-06-06 10:11
我查了DDK关于地址映射的函数
NTKERNELAPI PVOID MmMapLockedPagesSpecifyCache( IN PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode, IN MEMORY_CACHING_TYPE CacheType, IN PVOID BaseAddress, IN ULONG BugCheckOnFailure, IN MM_PAGE_PRIORITY Priority ); 其中的参数 IN MEMORY_CACHING_TYPE CacheType 可用的类型有: CacheType Specifies a MEMORY_CACHING_TYPE value, which indicates the type of caching allowed for the requested memory. The possible values that drivers can use are: MmNonCached The requested memory cannot be cached by the processor. MmCached The processor may cache the requested memory. MmWriteCombined The requested memory cannot be cached, but can be used as a frame buffer by the video port driver. 是否将CacheType参数改成 MmWriteCombined | MmNonCached就可以?驱动原先用的是MmNonCached。 wistful,你是用什么工具开发的驱动?我用你说的关键字PAGE_READWRITE在DDK和DriverStudio中都没有搜到。 |
|
6楼#
发布于:2005-06-06 10:18
我们用DriverStudio开发驱动,在WDM.H中可以查到PAGE_READWRITE。你可以试一下MmWriteCombined | MmNonCached。祝你好运。
|
|
7楼#
发布于:2005-06-06 11:03
谢谢!
你在DriverStudio中用的什么映射函数呢?我想参考一下。 |
|
8楼#
发布于:2005-06-06 11:49
m_ConstructorStatus = ZwMapViewOfSection(
hPhysMem, m_hProcess, &PreferredAddress, 0L, Size, &SectionOffset, &ViewSize, Inherit, 0, PAGE_READWRITE | PAGE_NOCACHE | PAGE_WRITECOMBINE ); |
|