文档介绍:: .
windriverwindriverwindr3].;
RangeAddrCS1=[3].;
BaseAddrCS2=[4].;
RangeAddrCS2=[4].;
BaseAddrCS3=[5].;
RangeAddrCS3=[5].;
else{
str="Open Failed";
WD_Close(m_hPex);
}
AfxMessageBox(str);
注:[0-5]就是 DEVICE/IO/MEM 映射的地方,这里得到的值和 windrive
wizard 里看到的是一样的。
二、设备的读写操作
WD_TRANSFER trans;
BZERO(trans);
= WP_BYTE; //(WORD/DWORD)
= BaseAddrCS0;//可为其它的映射基地址
= 0x00; //需要写的数据
WD_Transfer (m_hPex, &trans);
WD_TRANSFER trans;
BZERO(trans);
= RP_BYTE; //(WORD/DWORD)
= BaseAddrCS1;//可为其它的映射基地址
WD_Transfer (m_hPex, &trans);
return ;三、其它
有关 windriver 对寄存器的操作要用到 WDC_***函数,还有 DMA 操作在(二)中
阐述。三、寄存器的读写
寄存器的读写用到一个非常好用的函数 WD_PciConfigDump();具体的参数定义
参照 WD 的 API 手册。
WD_PCI_CONFIG_DUMP pciConfig;
DWORD dwStatus;
WORD arBuffer[2];
BZERO(pciConfig);
= Bus;
= Slot;
= Fun;
= arBuffer;
= sizeof(arBuffer);
= TRUE;
= 每次累加4
WD_PciConfigDump(m_hPex, &pciConfig);四、数据的块操作
DWORD dataBuffer[8192];
WD_TRANSFER trans;
*****************
=dataBuffer;
利用 WD_Transfer()函数来完成数据的块操作。
五、DMA 控制
WinDriver 为提供了一组 API 函数,但是其提供的 DMA 函数不是基于突发方式的,
并且是以查询方式