阅读:1258回复:2
急问pci9054驱动的问题
我用DMA方式传输数据
1。P9054_DMA_HANDLE P9054_DMAOpen (P9054_HANDLE hPlx, DWORD dwLocalAddr, PVOID buf, DWORD dwBytes, BOOL fIsRead, P9054_MODE mode, P9054_DMA_CHANNEL dmaChannel)中dwLocalAddr是如何获得的?P9054_MODE mode是如何设置的? 2。BOOL P9054_Open(P9054_HANDLE *phPlx, DWORD dwVendorID, DWORD dwDeviceID, DWORD nCardNum)中的P9054_HANDLE *phPlx如何定义的? 3。P9054_HANDLE hPlx是怎样定义的? 谢谢。 (问题是有些白痴,但还是请帮忙一下。) |
|
沙发#
发布于:2004-05-08 20:47
2.hPlx作为设备句柄,在P9054_Open()函数中得到,就是说如果检测到你的9054硬件,这个函数就返回设备句柄,供以后的操作使用
1. typedef enum { P9054_MODE_BYTE = 0, P9054_MODE_WORD = 1, P9054_MODE_DWORD = 2 } P9054_MODE; 就是DMA传输的方式,是按字节,字还是双字? dwLocalAddr要看你的硬件设计,表征的是你的硬件局部总线上的逻辑地址 3. P9054_HANDLE hPlx,看P9054_HANDLE的定义 typedef struct P9054_STRUCT *P9054_HANDLE; 再看P9054_STRUCT的定义 typedef struct P9054_STRUCT { HANDLE hWD; WD_CARD cardLock; WD_PCI_SLOT pciSlot; WD_CARD_REGISTER cardReg; P9054_ADDR_DESC addrDesc[AD_PCI_BARS]; DWORD addrSpace; P9054_INTERRUPT Int; } P9054_STRUCT; 实际上就是对windriver句柄,设备插槽设备资源的一种封装 抛砖引玉。。。 |
|
|
板凳#
发布于:2004-05-08 21:08
非常感谢!
但还想问一下 BOOL P9054_Open(P9054_HANDLE *phPlx, DWORD dwVendorID, DWORD dwDeviceID, DWORD nCardNum),调用个函数时参数P9054_HANDLE *phPlx写什么? [编辑 - 5/9/04 by yuandi] |
|