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

急问PCI9054驱动的问题

楼主#
更多 发布于:2004-04-26 16:53
我通过PCI9054从外部一buf中读取数据,用中断方式来获取信息,用DMA方式传输数据,保存并在一个做好的界面上以波形的形式显示读入的数据,用VC++来编写驱动,其中有些问题想请教一下。
1。传输进来的数据的地址是不是就是WD_DMALock()中返回的pPhysicalAddr,可不可以直接对把这个地址开始的数据赋给一个数组进行保存和显示,还是就直接用定义的参数bufer作为首地址指针?
2。WD_DMALock()中pUserAddr怎么用的,DMA传输的方式(contiguous buf DMA or scatter gather DMA)是如何定下来?
3。中断服务程序是不是写在
VOID P9054_IntHandler (PVOID pData)中?
4。显示时的操作,如对波形的放大缩小等,和中断服务程序是否会有冲突,是不是应该用多线程来做?该如何实现?
请多多指教,谢谢。

hong
驱动小牛
驱动小牛
  • 注册日期2001-09-19
  • 最后登录2005-12-16
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-27 00:42
1. pPhysicalAddr is the address you have to write into PCI9045 dma start address.
2. pUserAddr is the virtual mapped address of pPhysicalAddr.
you use pUserAddr to access the data inside the system memory, that say for dislaying.
3. VOID P9054_IntHandler (PVOID pData): put your int service here.
4. it is better to have a seperate thread to display the data.
yuandi
驱动牛犊
驱动牛犊
  • 注册日期2004-01-07
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-27 09:13
谢谢。
再多问一下, pUserAddr是那段地址的首地址吗?可以直接进行加1来使地址变化吗?
游客

返回顶部