新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于嵌入式Linux的视频采集编码系统实现二

基于嵌入式Linux的视频采集编码系统实现二

作者:时间:2012-09-18来源:网络收藏

系统通过URB实现USB 传输。为提高有效数据的传输速度可扩大 URB的缓冲来降低每个USB 事务中握手信息所占比例。每次 USB 传输都需要在操作系统中进行URB的建立、发出、回收和数据整理等阶段。可建立两个URB,当等待一个 URB被回收时,也就是图像正在被传感器采集时同时处理、初始化另一个 URB,并在回收后立刻将其发出。两个URB交替使用,大大提高了系统处理的时间效率。

  在编译器部分将 下的摄像头驱动程序中Makefile 文件中相关行修改为CC=/opt/host/armv4l/bin/armv4l-unknown-gcc-linux,修改 Config.in 文件,这样在配置内核的时候才可以看见驱动程序的名称。同时对下列与处理器相关的部分进行修改,即可实现对S3C2440 的USB 驱动的移植。

  (1)PCI 接口处理

  由于S3C2440 的USB 主机控制器不包含 PCI 接口,因此需要删除 usb-ochi.c中与PCI接口相关的代码。

  (2)寄存器地址设置

  在usb-ochi.c中,使S3C2440 的USB 主机控制器寄存器的起始地址(0x49000000) 初始化ochi->regs。

  (3)主机控制器中断设置

  在usb-ochi.c中,使S3C2440 的USB 主机控制器寄存器的中断向量初始化 ochi->irq 。

  (4)根HUB端口数目设置

  在usb-ochi.c 中,定义根HUB的下行端口数目为 2(#define MAX_ROOT_PORTS

  2),MAX_ ROOT_PORTS 的默认值为150。

  (5)修改 Makefile和Config.in 文件

  修改完成后执行 make命令,即可生成所需要的带有.o 后缀的驱动文件。

  驱动程序设计完成并编译成功后,使用动态加载的方法添加到内核中。首先在宿主机上交叉编译好驱动模块,然后通过串口下载到开发板上,再使用 insmod 命令将驱动挂载,摄像头驱动便可成功添加,通过 lsmod 命令可以查看当前驭动添加的情况。

  4

  系统软件基于VFL 开发,基本流程原理如图3。其中最关键的步骤就是视频数据的采集,一般有两种实现方法,一是直接读取,二是内存映射的方法。

基于嵌入式Linux的视频采集编码系统实现二

  1) 定义数据结构

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

关键词: 嵌入式 Linux 视频采集 编码系统

评论


相关推荐

技术专区

关闭