
Android 驱动
zjc0888
这个作者很懒,什么都没留下…
展开
-
V4L2摄像头获取单幅图片测试程序(read/write模式)
#根据网上常见的一个测试程序修改而来 by rockie cheng#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2011-05-09 13:16:00 · 3142 阅读 · 1 评论 -
驱动笔记++++++汉艾尔特
第一周:Android 手机开机后,会先运行 bootloader。 Bootloader 会根据某些判定条件(比如按某个特殊键)决定是否进入 recovery 模式。Recovery 模式会装载 recovery 分区, 该分区包含recovery.img。recov原创 2011-09-08 16:07:08 · 1688 阅读 · 0 评论 -
主设备号和file_operations结构关系; ioctl和unlocked_ioctl, ioctl简单测试例子
open一个字符设备的过程是从VFS层open系统调用 ===> def_chr_fops-->open ===> cdev->fops->open===> device specific operation 如果是同一类设备,比如系统中有多个framebuffer,那么就把共有的操作放在cdev->fops->open ,这时向系统注册的仅仅是这一个驱动程序;将这类主设备原创 2011-10-20 14:19:39 · 9385 阅读 · 0 评论 -
Linux驱动程序开发 - 设备控制接口
序言设备驱动程序的一个基本功能就是管理和控制设备,同时为用户应用程序提供管理和控制设备的接口。我们前面的“Hello World”驱动程序已经可以提供读写功能了,在这里我们将扩展我们的驱动以支持设备控制接口,在Linux中这个接口是通过ioctl函数来实现的。设备控制接口(ioctl 函数)回想一下我们在字符设备驱动中介绍的struct file_operations结构,这里转载 2011-10-20 11:18:55 · 846 阅读 · 0 评论 -
Linux 内核的同步机制--semaphore, rw_semaphore
一、 引言在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_semaph转载 2011-11-15 10:02:56 · 6108 阅读 · 0 评论 -
I2S总线数据通信
引言 I2S(InterIC Sound Bus)是飞利浦公司针对数字音频设备之间的音频数据传输而制定的一种总线标准,采用沿独立的导线传输时钟与数据信号的设计,通过分离数据和时钟信号,避免了时差诱发的失真。I2S总线简单有效,可以有效提升输出数据的质量,在各种嵌入式音频系统中有广泛应用。但是在嵌入式音频系统设计中,并不是所有的MCU都支持I2S总线格式,再加上I2S还没有统一的接口标准,不同转载 2011-11-05 09:50:18 · 7123 阅读 · 2 评论 -
Linux2.6内核中基于platform机制的驱动模型
摘要 本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型。首先介绍了Platform总线的基本概念,接着介绍了platform device和platform driver的定义和加载过程,分析了其与基类device 和driver的派生关系及在此过程中面向对象的设计思想。最后以ARM S3C2440中I2C控制器为例介绍了基于platform总线的驱动开发流程。原创 2011-11-09 17:11:01 · 2162 阅读 · 0 评论 -
request_irq()——注册中断服务
在 2.4 内核和 2.6内核中都使用 request_irq() 函数来注册中断服务函数。在 2.4 内核中,需要包含的头文件是 #include ,2.6 内核中需要包含的头文件则是#include 。函数原型如下:2.4 内核int request_irq (unsigned int irq, void (*handler)(int, void *, struct转载 2011-12-21 10:28:24 · 2136 阅读 · 0 评论 -
6410的GPIO使用
一,每组GPIO的数目: #define S3C64XX_GPIO_A_NR (8) #define S3C64XX_GPIO_B_NR (7) #define S3C64XX_GPIO_C_NR (8) #define S3C64XX_GPIO_D_NR (5) #define S3C64XX_GPIO_E_NR (转载 2012-02-21 16:56:09 · 2098 阅读 · 0 评论 -
get_ds, set_fs, get_fs函数的使用
在linux内核编程时,进行系统调用(如文件操作)时如果要访问用户空间的参数,可以用set_fs,get_ds等函数实现访问。get_ds获得kernel的内存访问地址范围(IA32是4GB),set_fs是设置当前的地址访问限制值,get_fs是取得当前的地址访问限制值。进程由用户态进入核态,linux进程的task_struct结构中的成员addr_limit也应该由0xBFFFFFFF变为0转载 2012-02-17 10:09:35 · 11963 阅读 · 0 评论 -
V4l2 v4l2_field理解
http://blog.youkuaiyun.com/kickxxx/article/details/6336346我们要区分video为 顺序式和交错式: 数序式video顺序的传输video image所有的行,而交错式video则把一个video划分成两个fields,分别保存vide转载 2011-07-13 15:43:48 · 4637 阅读 · 0 评论 -
基于V4L2的视频驱动开发
http://blogold.chinaunix.net/u2/64117/showart.php?id=2486262编写基于V4L2视频驱动主要涉及到以下几个知识点:l 摄像头方面的知识要了解选用的摄像头的特性,包括访问控制方法、各种参数的配置方法、信号输出类转载 2011-07-13 15:46:14 · 1240 阅读 · 0 评论 -
YUV420格式解析
<br />YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。YUV格式解析1(播放器——project2)根据板卡api设计实现yuv420格式的视频播放器打开*.mp4;*.264类型的文件,实现其播放。使用的视频格式是YUV420格式YUV格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将YUV分量存放在同一个数组原创 2011-05-18 15:04:00 · 1714 阅读 · 1 评论 -
V4L2 - Linux下视频驱动模型
在DM6446平台,我们在GPP端一般使用MontaVista操作系统来进行程序控制。MontaVista作为一种嵌入式的Linux,和桌 面Linux类似,同样使用视频驱动V4L2(Video For Linux Two)来进行视频采集、输出。本文就V4L2的使用方式做简易说明。一般的,视频采集都有如下流程:在V4L2中,视频设备被看做一个文件。使用open函数打开这个设备:// 用非阻塞模式打开摄像头设备int cameraFd;cameraFd = open("/dev/vid原创 2011-04-25 12:31:00 · 1078 阅读 · 1 评论 -
FrameBuffer 之 fb_fix_screeninfo 、fb_var_screeninfo
fb_fix_screeninfo 和 fb_var_screeninfo 都和 frame buffer 有关,详细的数据结构含义可以参考 kernel 头文件,这里只列出几个重要成员的含义。fb_fix_screeninfo 的 line_length 成员,含义是一行的 size,以字节数表示,就是屏幕的宽度。 结构fb_var_screeninfo定义了视频硬件一些可变的特性。转载 2011-06-16 13:24:00 · 7660 阅读 · 0 评论 -
Android ashmem的实现方式
ashmem是android的内存分配/共享机制,在dev目录下对应的设备是/dev/ashmem,相比于传统的内存分配机制,如malloc、anonymous/named mmap,其好处是提供了辅助内核内存回收算法的pin/unpin机制。ashmme的典型用法是先打开设备文件,然后做mmap映射。第一步通过调用ashmem_create_region函数,这个函数完成这几件事:1)fd = open("/dev/ashmem", O_RDWR);2)ioctl(fd, AS原创 2011-04-27 16:33:00 · 1219 阅读 · 0 评论 -
字符设备和块设备的区别
系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备的一般访问方式。 另一种基本的设备类型是字符设备。字符设备按照字符流的方式被有序访问,像转载 2011-06-27 15:08:00 · 936 阅读 · 0 评论 -
inux中的设备节点(/dev/*)
<br />设备管理是linux中比较基础的东西,但是由于Linux智能程度的越来越高,Udev的使用越来越广泛,使得越来越多的Linux新用户对 /dev 目录下的东西变得不再熟悉。有时候遇见问题就会变得抓狂<br />本文是我在写作《DIY 一个基于LFS的实用 Mini-LAPP 服务器》过程中整理的资料,拿出来与大家共享<br />Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。每个字符设备和块设备都必须有主、次设备号,主设备号相同的设原创 2011-05-05 09:57:00 · 1734 阅读 · 0 评论 -
V4L2摄像头获取单幅图片测试程序(MMAP模式)
#加了点注释#Rockie Cheng#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CLEA原创 2011-05-09 13:18:00 · 1453 阅读 · 3 评论 -
RGB 转化YUV
前几天碰到一个问题,需要做一张全黑的raw data给encode压码测试,因为raw data的格式是YUV的,于是相当然的就把所有值全置为0,因为Y值(亮度)置为0了,所以以为圧码出来的frame就应该是黑色的,可压完才发现是粉色的,这下晕了,因为全黑对于原创 2011-07-04 10:40:43 · 1093 阅读 · 0 评论 -
基于V4L2的视频驱动开发(2)
三、 V4L2 API及数据结构 V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。 1、常用的结构体在内核目录include/linux/videodev2.h中转载 2011-07-13 15:46:42 · 829 阅读 · 0 评论 -
在内核中创建文件 filp_open/sys_open
之前以为在内核中不能创建文件,其实不是这样子的,只要文件系统跑起来之后就可以像在用户空间一样操作文件. 用户空间 内核open() sys_open(), filp_open()close() sys_close(), filp_close()read()转载 2012-03-08 11:20:16 · 4021 阅读 · 0 评论