none
wince下DMA驱动 RRS feed

  • 问题

  • 我现在想做个驱动,ARM-FIFO-CPLD-CCD-A/D,这里,CPLD要驱动CCD与A/D。

    ARM与FIFO之间通过DMA通信,那么请问各位老师:1、硬件上如何连接 2、在WINCE低层驱动与EVC应用层的编程思路如何。如有例子,不胜感激!

    2008年7月25日 12:27

答案

  • 1、方法很多,主要看你的FIFO时序如何与ARM的DMA时序匹配,还取决于DMA的各项设置。若是异步FIFO(即两个系统两个时钟),可考虑用nRCSn做读使能,nROE做时钟,可以加个延时,视具体调试情况而定,防止跳变沿时无法读数。

    2、如果你的驱动不需要移植,推荐用单层驱动,这样效率高些。用流接口驱动就可以,然后EVC中用ReadFile和DeviceIoControl调用数据。

    2008年7月27日 1:18

全部回复

  • 感觉像是摄像头,Wince6.0里面带了Cemera Driver,可以参考一下:

    ms-help://MS.VSCC.v80/MS.VSIPCC.v80/MS.WindowsCE.v60.en/CE_DevelopingDrivers/html/c8aa891b-17b4-4e29-8ca0-4ab7c49d04f1.htm

     

    硬件上,就要根据你的ARM和FIFO的具体状况而定了。一般来说如果需要DMA链接的话,ARM和FIFO之间应该有DMA的握手信号,否则就只能靠GPIO查询或中断来实现了(实时性可能有问题)。

    2008年7月26日 1:49
  • 1、方法很多,主要看你的FIFO时序如何与ARM的DMA时序匹配,还取决于DMA的各项设置。若是异步FIFO(即两个系统两个时钟),可考虑用nRCSn做读使能,nROE做时钟,可以加个延时,视具体调试情况而定,防止跳变沿时无法读数。

    2、如果你的驱动不需要移植,推荐用单层驱动,这样效率高些。用流接口驱动就可以,然后EVC中用ReadFile和DeviceIoControl调用数据。

    2008年7月27日 1:18