阅读:1172回复:2
急问PCI9054驱动的问题
我通过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。显示时的操作,如对波形的放大缩小等,和中断服务程序是否会有冲突,是不是应该用多线程来做?该如何实现? 请多多指教,谢谢。 |
|
沙发#
发布于: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. |
|
板凳#
发布于:2004-04-27 09:13
谢谢。
再多问一下, pUserAddr是那段地址的首地址吗?可以直接进行加1来使地址变化吗? |
|