自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(65)
  • 资源 (8)
  • 收藏
  • 关注

原创 videobuf处理流程

videobuf是应用程序和v4l2驱动程序的一个中间层,用它来进行视频数据缓冲区的分配和管理。它根据应用程序的需求(缓冲区的数量的大小),分配相应的视频缓冲区,这个缓冲区是在内核空间分配的,并通过mmap方法映射到用户空间,在内核空间形成一个缓冲区队列,在应用程序中有相应的缓冲区数组对应,它们指向的内存地址是一样的。在驱动程序中,根据配置的硬件参数(FIFO阈值),将vip硬件图像存储器中的

2013-04-01 22:54:32 2443

原创 v4l2_dev.c浅析

V4l2视频操作最核心的处理函数:#define VIDEO_NUM_DEVICES 256 //子设备数量#define VIDEO_NAME "video4linux"//设备名称,可能是在/dev下显示的名称1、建立sysfs节点及属性// sysfs stuffstatic ssize_t show_index(struct dev

2013-03-31 09:51:57 1714 1

原创 v4l2_common.c浅析

V4l2的子设备一般是摄像头和摄像头控制器,它们和主机的控制操作是通过i2c总线完成的。V4l2驱动框架中跟i2c相关的代码在deriver/media/video/v4l2_common.c中,下边就相关函数作一简单分析:下边宏的作用是如果v4l2的子设备通过i2c总线和主机通信时,才能用到下边的函数,因为有可能通过其他总线通信,比如SPI等。#if defined(CONFIG_I2C

2013-03-31 09:21:08 1989 1

原创 v4l2_device.c浅析

关于v4l2及v4l2_subdev设备实例的注册注消等操作在deriver/media/video/v4l2_device.c文件中,下边将各个函数分析一下(分析的时候以2.6.32.40内核为主,并列出与3.3.1的区别):注册一个v4l2设备实例,主要建立dev和v4l2_dev的关系(下边黄低红字)。初始化v4l2_dev,使dev_driver_data指向v4l2_dev,dev在

2013-03-31 08:58:13 2276

原创 v4l2 video设备注册和调用过程

一、 注册一个video_device设备它代表系统/dev/videox设备节点的实际的物理设备。下边一内核版本2.6.32种成熟的omap2432处理器摄像头控制器模块驱动为例分析:下边的代码在driver/media/video/omap24xxcam.c中1、Video device的操作函数集static struct v4l2_file_operations oma

2013-03-31 08:42:37 1952

翻译 v4l2驱动文档之——filed

video的帧可区分为隔行和逐行: 逐行顺序的传输一帧所有的行,而隔行则把一帧划分成两个fields,分别保存帧的奇数行和偶数行,被称作奇场和偶场.  阴极射线电视机需要交替的显示两场来组成一个完整的帧,交替的时延需要我们交替的传输奇场和偶场。这个奇怪技术的引入是因为:在刷新率接近电影时,图片会 消退的过快。使用奇偶场可以避免使用双倍的buffer以及额外的带宽需求。 首先要明确camer

2013-03-30 22:22:07 979

翻译 v4l2驱动文档之——controls

v4l2驱动编写篇第七--控制方法 刚刚完成了这一系列文章的第六部分,我们现在知道如何设置视频设备,并来回传输帧了。然而,有一个众所周知的事实,那就是用户永远也不会满意,不会满足于能从摄像头上看到视频,他们马上就会问我可不可以调参数啊?像亮度、对比度等等。这些参数可以在视频应用中调整,有时也的确会这样做,但是当硬件支持时,在 硬件中进行调整有其优势。比如说亮度调整,如果不这样做的话,可能会丢失

2013-03-30 21:35:30 932

翻译 v4l2驱动文档之——streaming IO

v4l2驱动编写篇第六B--流输入输出 在本系列文章的上一期中,我们讨论了如何通过read()和write()的方式实现视频帧的传输,这样的实现可以完成基本的工作,却并不是普便上用来实现视频输入输出大家偏爱的方法。为了实现最高性能和最好的信息传输,视频驱动应该支持V4L2 流输入输出。使用read()和write()方法,每一帧都要通过I/O操作在用户和内核空间之间拷贝数据。然而, 当使用

2013-03-30 21:29:40 1316

翻译 v4l2文档之——basic frame IO

一、v4l2驱动编写篇第六A--基本的帧输入输出 1、基本的帧输入输出关于视频驱动的这一系列文章己经更新了好几期,但是我们还没有传输过一帧的视频数据。虽然在这一点上,我们己经了解了足够多的关于格式协定方面的细节,我们可以看一下视频帧是如何在应用和设备之间传输的了。V4L2 API定义了三种不同的传输视频帧的方法,现在有两种是可以实现的:read() 和write() 系统调被用于普

2013-03-30 21:23:47 1217

翻译 v4l2文档之——format negotiation

V4l2驱动编写篇第五B--格式的协定这是不定期发布的关于写视频驱动程序的LWN系统文章的一篇续篇.介绍篇 包含了对整个系统的描述,并且包含对本篇的上一篇的链接,在上一集,我们关注了V4L2 API是如何描述视频格式的:图片的大小,和像素在其内部的表示方式。这篇文章将完成对这个问题的讨论,它将描述如就硬件所支持的实际视频格与应用达到协 议。1、 枚举硬件所支持的所有格式如我们在上一篇中

2013-03-30 21:15:09 976

翻译 v4l2文档之——color and format

v4l2文档第五A--颜色与格式   颜色与格式这是不定期发布的关于写视频驱动程序的LWN系统文章的第五篇.没有看过介绍篇的,也许想从这里 开始。  应用在可以使视频设备工作之前,它必须与驱动达成了解,知道视频数据是何种格式的。这种协商将是一个非常复杂的过程,其原因有二:1、视频硬件所支持的视 频格互不相同。2、在内核的格式转换是令人难以接受的。所以应用在找出一种硬件支持的格式,并做出一种

2013-03-30 19:48:15 1307

翻译 v4l2文档之——input and output

v4l2驱动编写篇第四--输入输出1、输入和输出这是不定期发布的关于写视频驱动程序的LWN系统文章的第四篇.没有看过介绍篇的,也许想从这里开始。本周的文章介绍的是应用程序如何确定在特定适配器上哪些输入和输出可用,并且在它们之间做出选择。在很多情况下,视频适配器并不能提供很多的输入输出选项。比如说摄像头控制器,可能只是提供摄像头,而没什么别的功能。然而,在一些其他的情况下,事情将变得很复

2013-03-30 19:47:00 1126

翻译 v4l2文档之——basic ioctl

v4l2驱动编写篇三--基本I/O处理 如果有人在video for linux API规范上花了我时间的话,他肯定已经注意到了一个问题,那就是V4L2大量使用了ioctl接口。视频硬件有大量的可操作旋钮,可能比其它任何处理都要多。视频流要与许多参数相联系,而且有很大一部分处理要通过硬件进行。试图在硬件支持模式之外运行视频会导致性能很差,甚至根本任何性能。所以我们不得不揭露硬件的许多特性,结束

2013-03-30 19:45:43 939

翻译 v4l2文档之——register and open

v4l2驱动编写篇二--注册和打开   这篇文章是LWN写V4L2接口的设备驱动系列文章的第二篇。没看过介绍篇的,也许可以从那篇开始看。这一期文章将关注Video for Linux驱动的总体结构和设备注册过程。开始之前,有必要提一点,那就是对于搞视频驱动的人来说,有两份资料是非常有价值的。•TheV4L2 API Specification . (V4L2 API说明)这份文档涵盖了

2013-03-30 19:44:41 905

翻译 v4l2文档之——media framework

Linux kernel media framework============================ This document describes the Linux kernel media framework, its data structures,functions and their usage. Linux 内核多媒体驱动框架 这个文档描述linu

2013-03-30 19:43:22 2805

翻译 v4l2文档之——v4l2 framework

V4L2驱动框架概述=====================================这个文本文件讲述V4L2的框架所提供的各种结构以及它们之间的关系.1、简介------------由于硬件的复杂性v412驱动往往是非常复杂的: 大多数设备有多个IC,在/dev目录下有多个设备节点, 并也创建non-V4L2的设备,如DVB,ALSA,FB,I2C和input(I

2013-03-30 19:42:07 2132

翻译 V4L2文档之——V4L2 framework

V4L2驱动框架概述=====================================这个文本文件讲述V4L2的框架所提供的各种结构以及它们之间的关系.1、简介------------由于硬件的复杂性v412驱动往往是非常复杂的: 大多数设备有多个IC,在/dev目录下有多个设备节点, 并也创建non-V4L2的设备,如DVB,ALSA,FB,I2C和input(I

2013-03-30 19:40:53 461

转载 alsa内核文档之——dapm.txt

Dynamic Audio Power Management for Portable Devices===================================================1. Description==============Dynamic Audio Power Management (DAPM) is designed to allow por

2013-03-30 11:05:49 753

转载 alsa内核文档之——ControlNames.txt

This document describes standard names of mixer controls.Syntax: SOURCE [DIRECTION] FUNCTIONDIRECTION:   (both directions)  Playback  Capture  Bypass Playback  Bypass CaptureFUNCTION:

2013-03-30 11:04:06 687

翻译 alsa内核文档翻译之——clocking.txt

This text describes the audio clocking terms in ASoC and digital audio in general. Note: Audio clocking can be complex!本文本总体描述ASoC和数字音频中的音频时钟条款。Master Clock主时钟------------Every audio subsy

2013-03-30 11:01:26 648

转载 sysfs之kobject

一 ,Kobjects概述 Kobject 是Linux 2.6 引入的新的设备管理机制,在内核中由struct kobject数据结构 进行描述通过这个数据结构使所有设备在底层都具有统一的接口,kobject提供基本的对象管 理,是构成Linux2.6设备模型的核心结构,它与sysfs文件系统紧密关联,每个在内核中注 册的kobject对象都对应于sysfs文件系统中的一个目录。Kobjec

2012-07-30 22:01:43 2627

转载 platform 机制

从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。Linux platform driver机制和传统的device driver 机制(通过driver_register函数进

2012-07-30 21:59:00 388

翻译 moudle.txt

在这个文档里你可以找到以下信息:-如何建立一个外部模块-如何用kbuild结构来编译你的模块-如何在非标准定位处安装你的模块=== 内容表    === 1 简介    === 2 如何建立外部模块       --- 2.1 建立外部模块       --- 2.2 可用的目标       --- 2.3 可用的选项       --- 2.4 为建立模块

2012-07-30 21:30:05 370

翻译 Kbuild.txt

介绍在配置数据库的配置选项是以树的形式组织的:+- Code maturity level options| +- Prompt for development and/or incomplete code/drivers+- General setup| +- Networking support| +- System V IPC| +- BSD Process Ac

2012-07-29 19:31:43 322

翻译 Kconfig

在linux2.6.x/Documentation/kbuild目录下有周详的介绍有关kconfig、makefile的知识。linux在2.6版本以后将配置文件由原来的config.in改为kconfig,对于kconfig的语法在/Documentation/kbuild/kconfig-language.txt中做了详细的说明,在这里给出kconfig-language.txt的中文版。

2012-07-29 18:20:09 142

转载 struct inode

一:简介inode 是 UNIX 操作系统中的一种数据结构,它包含了与文件系统中各个文件相关的一些重要信息。在 UNIX 中创建文件系统时,同时将会创建大量的 inode 。通常,文件系统磁盘空间中大约百分之一空间分配给了 inode 表。   有时,人们使用了一些不同的术语,如 inode 和索引编号 (inumber)。这两个术语非常相似,并且相互关联,但它们所指的并不是同样的概念。i

2012-07-29 18:04:49 568

转载 struct file

整理的知识点: struct file ──字符设备驱动相关重要结构文件结构 代表一个打开的文件描述符,它不是专门给驱动程序使用的,系统中每一个打开的文件在内核中都有一个关联的struct file。它由内核在open时创建,并传递给在文件上操作的任何函数,直到最后关闭。当文件的所有实例都关闭之后,内核释放这个数据结构。struct file {/** fu_list be

2012-07-29 18:02:11 440

转载 《Linux设备驱动程序》第八章 分配内存读书笔记

《Linux设备驱动程序》第八章 分配内存读书笔记kmalloc函数的内幕不对所获取的内存空间清零分配的区域在物理内存中也是连续的flags参数GFP_KERNEL在空闲内存较少时把当前进程转入休眠以等待一个页面分配内存的函数必须是可重入的GFP_ATOMIC用于在中断处理例程或其他运行于进程上下文之外的代码中分配内存,不会休眠GFP_USE

2012-07-26 14:09:46 477

翻译 alsa 内核文档之——platform.txt

ASoC Platform DriverASoC平台驱动====================An ASoC platform driver can be divided into audio DMA and SoC DAI configurationand control. The platform drivers only target the SoC CPU and m

2012-07-18 09:47:40 427

翻译 alsa内核文档翻译之——machine.txt

ASoC Machine DriverASoC机器驱动===================The ASoC machine (or board) driver is the code that glues together the platformand codec drivers.ASoC机器或板级驱动是把平台和解码器驱动粘合在一起的代码。The machine

2012-07-18 09:41:55 548

翻译 alsa内核文档之——DAI.txt

ASoC currently supports the three mainDigital Audio Interfaces (DAI) found onSoC controllers and portable audio CODECs today, namely AC97, I2S and PCM.ASoC现在支持如今的SoC控制器和便携音频解码器上的三个主要数字音频接口,即AC97,I

2012-07-17 15:46:40 396

翻译 alsa内核文档翻译之——codec.txt

ASoC Codec Driver The codec driver is generic and hardwareindependent code that configures thecodec to provide audio capture and playback. It should contain no code that isspecific to the targ

2012-07-17 14:36:08 862

翻译 alsa内核文档翻译之——overview.txt

前言目前,linux系统常用的音频驱动有两种形式:alsa ossalsa:现在是linux下音频驱动的主要形式,与简单的oss兼容。oss:过去的形式而我们板子上的uda1341用的就是alsa驱动。alsa概述:因为我们用的是板上系统,用的也是alsa 的一个soc子系统。所以我们直接讲解alsa soc子系统。ALSA SoC LayerThe overa

2012-07-17 14:18:51 660

原创 list_add_tail 双向链表实现分析

在看内核v4l2示例代码driver/media/video/vivi.c时 ,看到list_add_tail()函数,现在对其进行分析:struct list_head { struct list_head *next, *prev;}; list_add_tail(&buf->vb.queue, &vid->active);/** * list_add_tail

2012-06-12 09:50:23 4110 1

转载 linux kthread

内核线程和普通进程的区别:内核线程只能运行在内核态,而普通进程既可以运行在内核态,也可以运行在用户态。因为内核线程只运行在内核态,它们只使用大于PAGE_OFFSET的线性地址空间。另一方面,不管在用户态还是在内核态,普通进程可以用4G的线性地址空间。1.       头文件#include   //wake_up_process()#inc

2012-06-09 17:53:08 1249

转载 linux current

尽管内核模块不象应用程序一样顺序执行, 内核做的大部分动作是代表一个特定进程的. 内核代码可以引用当前进程, 通过存取全局项 current, 它在 中定义, 它产生一个指针指向结构 task_struct, 在 定义. current 指针指向当前在运行的进程. 在一个系统调用执行期间, 例如 open 或者 read, 当前进程是发出调用的进程. 内核代码可以通过使用 current 来使

2012-06-08 16:05:54 3455

原创 shell 编程中空格的使用

1.定义变量时, =号的两边不可以留空格.eg:gender=femal————rightgender =femal———–wronggender= femal———–wrong2.条件测试语句 [ 符号的两边都要留空格.eg:if [ $gender = femal ]; th

2011-07-22 20:26:36 5362 1

原创 shell 编程中各种括号的使用

1.()在子shell中运行(a=1);echo $a,结果是空,因为a=1不是在当前shell中运行的(a=1);(echo $a)也是空的。不在同一个子shell中数组的赋值,见最后的补充2.(())表达式计算a=1;((a++)); echo $a,这时a就是2了。3.()

2011-07-22 15:23:39 1136

原创 __asm__ __volatile__内嵌汇编用法简述

__asm__ __volatile__内嵌汇编用法简述 __asm__ __volatile__内嵌汇编用法简述在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清

2011-07-10 18:19:54 333

原创 __asm__ __volatile__内嵌汇编用法简述

__asm__ __volatile__内嵌汇编用法简述 __asm__ __volatile__内嵌汇编用法简述在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清

2011-07-10 18:12:21 108

mega16中文资料

广州双龙电子的mega16中文资料!很有权威

2009-10-06

mega128中文资料

广州双龙电子翻译的mega128芯片资料,挺好用的!

2009-10-06

单总线使用方法(协议,驱动)

详细描述了单总线的各个方面,有单总线协议,如何使用单总线等

2009-09-19

UartAssist.最新的51串口调试工具

最新的串口调试工具,可以发送,也可以接受

2009-08-19

最好用的51串口通讯计算器

最好用的51串口通讯计算器,设置波特率,选择晶振频率,得到所要的定时器初值

2009-08-19

zimo22字模 取各种字模代码

可以取各种点阵屏的字模 代码,1602液晶,12684,大型点阵屏,还可以自己设计显示内容。

2009-08-19

带字库12864液晶详解

带字库12864中文资料,各个管脚说明,时序图,特性及注意事项

2009-08-19

集成运放使用的可靠性

集成运算放大器的基本资料 失效模式及失效机理分析 装配可靠技术

2009-04-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除