跳过导航.
首页

Video4Linux 2 摄像和视频采集类Linux API

V4L2接口主要用来支持视频类设备,提供统一的驱动API使得软件能够较容易的访问这些视频设备。

实际上,V4L2用来支持一系列的设备,其中只有一部分是真正的“视频”设备

视频捕捉接口

用来从硬件设备,如摄像头或电视调谐器,捕捉视频数据并输入到软件。

视频输出接口

用来将应用程序的视频数据通过设备输出,如输出电视信号到电视机。

视频Overlay接口

可以看作是一种特殊的视频捕捉,特殊之处在于通过利用硬件的能力,将捕捉的视频直接输出到显示设备上,视频数据完全不经过CPU处理。

VBI接口

用于利用视频图像帧之间的时隙中发送图文数据

收音接口

用来提供接受收音机音频数据的接口

Montavista Linux 6的新特性

montavista linux

 

使用开源软件的挑战

开发消耗过多时间

 

Mvista linux 6.0版的新特性

 

AMBA v3总线

AMBA v3规范定义了几种总线,其中

AMBA3 AXI总线是用于替代原来AHB的新一代总线,主要应用于嵌入式系统的高速互联,特别是embedded soc。

AMBA3 AHB总线用于替代原来的AHB-lite,不支持多时钟domain,并且是单工的。虽然性能上不如AXI,但是能够兼容原来的AHB-lite

AMBA3 APB总线用于替代原来的APB,基本功能一致并且保持了和老版本之间的完全兼容性

AMBA3 ATB总线用于提供一条调试总线,所有需要调试的模块可以通过ATB连接,得到调试支持

其中最新引入AXI有如下几个特点:

专为高速通讯准备的完全流水线化互联

能够高效率连接不同的异步时钟domain,简化动态能源管理

能够同时进行读写传送

对传输初始化开销大的设备支持效率较好

目前AMBA 3已经在Cortex家族中广泛使用,如cortex-a8和cortex-a9,部分arm11处理器也有采用

新一代的SuperH处理器

 

瑞萨科技(以下简称“瑞萨”)在2009年4月23日推出用于手机的SH7370应用处理器,代号SH-MobileHD1,是业内能够做到全高清1080p Full HD 播放和录像的产品之一,另外一个是TI OMAP4

SH7370在一个独立芯片上支持全高清视频编解码。该应用处理器提供了非常强劲的多媒体功能,并且保持了对手机应用至关重要的低功耗。器件采用非常紧凑的小型封装,专门面向手机领域的视频和音频处理系统。

Cortex-a8 arm11 arm9 xscale powerpc 嵌入式处理器实测性能

嵌入式处理器层出不穷,系列和种类繁多。经常在嵌入式产业界见到的处理器,仅指令集家族就有x86,arm,powerpc,mips,sh等。每种指令集往往又有很多系列,下面还有不同版本,甚至同一版本有不同芯片厂家实现产品。这还不够,再加上不同的主频、总线结构、存储器cache配置,即使在行业里打拼多年的专业人士也难免眼花缭乱。

所以,经常有人会问:200Mhz的arm9比起嵌入式工控机上的赛扬有多大的性能差距?四千多买的500MHz的智能手机究竟比笔记本电脑慢多少?

在短时间内全面解释这类问题,介绍清楚各种嵌入式处理器的来龙去脉是不可能的。笔者前日对手里的几个嵌入式处理器进行了性能评测,获得了一些有趣儿的结果,能够一定程度上说明问题,于是撰文跟大家分享。

基于cortex-a9高性能arm soc —— omap4

 

单核的Cortex-A9在性能上比已经推出的Cortex-A8处理器更高,并且 A9系列可以提供两个乃至四个内核片上SMP产品,能提供总共超过8,000Dhrystone Mips(DMIPS)的峰值处理性能,这一性能大约是典型arm11处理器(如iphone)的10-15倍,遑论更早的arm9系列。同时Cortex-a8是可综合的,芯片制造商采用速度优化工艺时的时钟频率能够超过1GHz,也可采用低功耗工艺大幅降低耗电。如果要进一步的省电,还可以采用动态减慢时钟或关闭部分内核的方法。

u-boot 结构分析 —— 基于S3C2410

u-boot是广泛应用于嵌入式系统的bootloader,该软件主页是http://www.denx.de/wiki/U-Boot

 

解压缩开代码包后,以下几个目录中分类存放了主要的源码

board目录——用于放置板支持代码,相当于bootloader级的BSP。与特定板相关的代码包括频率合成、GPIO、板参数、调试串口、能源管理、按键处理等。如本例子的板级代码

linux内核启动过程——基于S3C2410 (2)Image早期初始化

从zImage头跳转进来,此时的状态

  • MMU为off
  • D-cache为off
  • I-cache为dont care,on或off没有关系
  • r0为0
  • r1为machine ID
  • r2为atags指针

内核代码入口在linux-2.6.24-moko-linuxbj/arch/arm/kernel/head.S文件的83行。首先进入SVC32模式,并查询CPU ID,检查合法性

linux内核启动过程——基于S3C2410 (1)zImage自解压

本文以流行的Samsung公司的S3C2410,openmoko平台和linux-2.6.24为例,介绍如何在ZIX嵌入式开发环境下探索linux内核启动过程。

Linux内核启动一般由外部的bootloader引导,也可以在内核头部嵌入一个loader,实际的应用中这两种方式都会经常遇到。所以要了 解内核启动最开始的过程,必须对bootloader如何引导内核有所熟悉。下面我们从u-boot加载linux内核的代码开始分析(关于u-boot 自身的启动流程,请参考u-boot 启动过程 —— 基于S3C2410)。

在u-boot的do_bootm_linux函数里,实现了处理器架构相关的linux内核加载代码,特别是tags传递。

u-boot 启动过程 —— 基于S3C2410

本文以流行的Samsung公司的S3C2410,openmoko平台和u-boot-1.3.2(2008.5 发布)为例,介绍如何在ZIX嵌入式开发环境下探索u-boot启动过程。

同步内容