yuandi
驱动牛犊
驱动牛犊
  • 注册日期2004-01-07
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1258回复:2

急问pci9054驱动的问题

楼主#
更多 发布于:2004-04-30 21:14
我用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是怎样定义的?
谢谢。
(问题是有些白痴,但还是请帮忙一下。)
lala
驱动中牛
驱动中牛
  • 注册日期2001-04-26
  • 最后登录2006-10-18
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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句柄,设备插槽设备资源的一种封装

抛砖引玉。。。
:D拉拉拉,拉拉拉,偶素待业的小青年...
yuandi
驱动牛犊
驱动牛犊
  • 注册日期2004-01-07
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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]
游客

返回顶部