新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DSP/BIOS的外设驱动开发模型及DSP视频驱动程序

基于DSP/BIOS的外设驱动开发模型及DSP视频驱动程序

作者:时间:2011-06-04来源:网络收藏

③mdSubmitChan函数。负责管理缓冲区。分别接受应用程序发出的FVID_ALLOC、FVID_EXCHANGE、FVID_FREE三个命令并进行处理。其中FVID_ALLOC命令对应图4中(a)到(b)的过程,应用程序从两个缓冲区中取出最新的一帧视颧数据,埘其中的数据做处理,而只剩下一个缓冲区用来接受外部设备输入的数据。FVID_EXCHANGE对应图4中(b)到(c)的过程,应用程序处理完1帧数据,将这1帧数据返回程序,准备用来显示,同时再读入新的l帧数据进行处理。FVID_FREE对应图4中(c)到(a)的过程,应用程序将处理完的数据帧返回程序,而不再向程序申请新的数据帧。以上3个命令足针对输入接口GIO_capture而言的,而对于输出设备接口GIO_play,在SRAM中没有分配缓冲区,所以其nldSubmitChan函数内部设为空函数。

④mdControlChan函数。用来操作外部设备,完成对数据的采集和输出。对于GIO_capture和GIO_play这两个设备接口的mdControlChan函数接受的命令是不同的:

视频输入GIO_capture接口的mdControlCham函数只接受cmd_start命令,完成1帧视频数据的采集;而视频输出GIO_play接口的mdControlChan函数只接受cmd_display命令.完成视频信号的输出。

3.4 视频驱动裁剪的一般方法

TI公司设计的GIO/FVID视频设备驱动原型相对复杂,且占用较多的系统资源,要使其可以应用于更通用的低端处理器系统,就必须进行改造和裁减。在改造中要注意以下几个方面:

①阻塞的I/0操作。TI公司6000系列的具有FDMA功能,传输数据不需要CPU的干预,而DM64X还具有专用的视频接口,传输数据不会占用外部扩展总线,所以视频数据的处理和输入输出是可以并行的。而低端处理器是不具备这样功能的,视频设备一般都是通过外部扩展总线连接的,所以对视频设备的操作必须设计为阻塞型的I/O操作,视频数据输入/输出的过程是由CPU来完成,且要保证对视频设备的操作不会被其他操作中断。

②对视频数据缓冲区的管理。GIO/FVID视频设备驱动原型中使用的3缓冲区,虽然功能很完善,却占用了太多的存储空间,所以对于实际的视频处理系统就要进行调整,改为两缓冲区甚至是单缓冲区。对于具有独立硬件缓存的输出设备,可以考虑不再为其分配动态缓冲区。

③对视频设备的操作。mdControlChan函数主要用来操作外部视频设备,只要保留对实际系统有用的操作就足够了,而GI0/FVID视频设备驱动原犁中定义的很多操作都可以省略。

4、小结

本文介绍了/BIOS的驱动程序模型,并针对F2812的视频处理系统这一具体的硬件平台,重点介绍了GIO/FVID设备驱动的流程和针对低端处理器系统的视频驱动模型裁减方法。本视频驱动程序为各种视频处理应用程序(如JPEG图像EPA控制网络中ZigBee压缩、MPEG视频压缩、视频监控程序等)提供了有力的支持。本文介绍的设备驱动程序的方法,对于同类视频处理系统,特别是对于使用TI2000系州DSP这样系统资源比较有限的视频处理系统,具有很好的可借鉴性。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭