随笔分类 -  Linux驱动相关

一个驱动匹配多个器件
摘要:1. 一个驱动中要匹配多个器件 阅读全文

posted @ 2018-05-28 15:53 Hello-World3 阅读(246) 评论(0) 推荐(0) 编辑

驱动对应用的异步通知机制
摘要:驱动对应用的异步通知机制 1.应用程序需要完成如下三个步骤: (1)signal(SIGIO, sig_handler); 调用signal函数,让指定的信号SIGIO与处理函数sig_handler对应。 (2)fcntl(fd, F_SET_OWNER, getpid()); 指定一个进程作为文 阅读全文

posted @ 2018-05-22 22:53 Hello-World3 阅读(569) 评论(0) 推荐(0) 编辑

BKL 大内核锁
摘要:BKL 大内核锁 BKL是一种递归锁。一个进程可以多次请求一个锁,并不会像自旋锁那么产生死锁。 BKL可以在进程上下文中。 BKL是有害的。 在内核中不鼓励使用BKL。一个执行线程可以递归的请求锁lock_kernel(),但是释放锁时也必须调用同样次数的unlock_kernel()操作,在最后一 阅读全文

posted @ 2018-05-19 23:08 Hello-World3 阅读(236) 评论(0) 推荐(0) 编辑

YUV和RGB之间的转换方法
摘要:参考: https://blog.csdn.net/qq_29350001/article/details/52032540 阅读全文

posted @ 2018-03-29 18:38 Hello-World3 阅读(185) 评论(0) 推荐(0) 编辑

BT601. BT709色彩空间
摘要:参考:http://blog.csdn.net/mao0514/article/details/16958873 阅读全文

posted @ 2018-01-30 00:31 Hello-World3 阅读(1755) 评论(0) 推荐(0) 编辑

HDMI接口基本信息
摘要:一、HDMI基本概念1.HDMI标准的发展历史: 2002年12月9日,HDMI1.0版正式发布,标志着HDMI技术正式登上历史舞台。 2004年1月,HDMI1.1版发布。 2005年8月,HDMI1.2版发布。 2005年12月,HDMI1.2a版发布。 2006年6月,HDMI1.3版发布。 阅读全文

posted @ 2018-01-26 01:29 Hello-World3 阅读(2250) 评论(0) 推荐(0) 编辑

linux驱动ioctl()cmd定义中 _IO, _IOR, _IOW, _IOWR 宏介绍
摘要:一、宏介绍 1. 在驱动中 ioctl() 参数 cmd 是应用发给驱动的命令代码,cmd 除了可区别的普通数字外,还可以使用包含有助于处理的几种相应信息的数字作为cmd,cmd为int型,32位,共分 4 个域: bit31~bit30 2位为 "区别读写" 区,作用是区分是读取命令还是写入命令。 阅读全文

posted @ 2018-01-18 19:45 Hello-World3 阅读(1926) 评论(0) 推荐(0) 编辑

V4L2 subdev
摘要:除了通过v4l2_subdev_ops结构体暴露kernel API,V4L2 sub-devices也可以被用户空间应用直接控制。v4l-subdevX的设备节点可以在/dev下被创建来直接访问sub-devices。如果一个sub-device支持用户空间直接配置,必须在注册前设置V4L2_SU 阅读全文

posted @ 2018-01-15 21:42 Hello-World3 阅读(1973) 评论(0) 推荐(0) 编辑

V4L2控制驱动
摘要:1.应用如何知道设备支持那些特性的控制?一种典型的做法,V4L2 API提供了一种机制可以让应用能枚举可用的控制操作。为此,他们要发出最终由驱动videoc_queryctrl()方法实现的ioctl(VIDIOC_QUERYCTRL)调用。int v4l2_queryctrl(struct v4l 阅读全文

posted @ 2018-01-15 00:13 Hello-World3 阅读(488) 评论(0) 推荐(0) 编辑

Entities、pads、links 实体、垫、链接
摘要:Entities、pads、links 实体、垫、链接 Entities:1.实体由一个struct media_entity实例表示。结构通常嵌入到一个较高级别的结构,例如v4l2_subdev或video_device实例,虽然驱动程序 可以直接分配实体。2.驱动程序初始化实体 media_en 阅读全文

posted @ 2018-01-15 00:09 Hello-World3 阅读(1066) 评论(0) 推荐(0) 编辑

DMABUFF
摘要:1.DMABUF框架提供了在多设备间共享缓存的通用方法,支持DMABUF的设备驱动可以将一个DMA缓存以文件句柄的方式输出到用户空间(输出者规则),以文件句柄的方式从用户空间获取一个DMA缓存,这个文件句柄是之前其他或相同的设备所输出的(引入者规则),或都是。V4L2缓存以DMABUF文件句柄方式进 阅读全文

posted @ 2018-01-14 11:35 Hello-World3 阅读(1371) 评论(0) 推荐(0) 编辑

像素格式
摘要:2、ITU-R BT.601与ITU-R BT.656的区别 关于这两种信号的区别: ITU-R BT 601: 16位数据传输;21芯;Y、U、V信号同时传输,最后更新的文档代号为:ITU-R BT.601-5。ITU-R BT 656: 9芯,不需要同步信号;8位数据传输;串行视频传输;传输速率 阅读全文

posted @ 2018-01-07 18:43 Hello-World3 阅读(598) 评论(0) 推荐(0) 编辑

驱动中回溯函数的调用关系
摘要:1.只需要在想要回溯的函数中调用dump_stack()即可。 dump_stack()在~/kernel/ lib/Dump_stack.c中定义,使用时可能需要包含头文件#include <asm/ptrace.h> 例如: 在max9211_s_stream()中加入dump_stack()打 阅读全文

posted @ 2017-12-01 18:40 Hello-World3 阅读(336) 评论(0) 推荐(0) 编辑

CSI-MIPI学习笔记
摘要:一、mipi LCD 的CLK时钟频率与显示分辨率及帧率的关系 公式: Mipiclock = [ (width+hsync+hfp+hbp) x (height+vsync+vfp+vbp) ] x (bus_width) x fps/ (lane_num)/2即mipi屏的传输时钟频率(CLKN 阅读全文

posted @ 2017-11-28 23:04 Hello-World3 阅读(10124) 评论(0) 推荐(1) 编辑

1920*1080分辨率和1080p,1080i的关系
摘要:1080i和1080p是由美国电影电视工程师协会确定的高清标准格式,其中1080p被称为目前数字电视的顶级显示格式,这种格式的电视在逐行扫描下能够达到1920×1080的分辨率。受限制于存储介质(一部1080p的影片需要10GB以上的存储空间),目前1080p的影片多数以蓝光方式发行,随着蓝光播放机 阅读全文

posted @ 2017-11-19 21:16 Hello-World3 阅读(3829) 评论(0) 推荐(0) 编辑

V4L2驱动内核文档翻译(一)
摘要:随着一些视频或者图像硬件的复杂化,V4L2驱动也越来越趋于复杂。许多硬件有多个IC,在/dev下生成多个video设备或者其他的诸如,DVB,ALSA,FB,I2C ,IR等等非V4L2的设备。所以,V4L2驱动程序就要为这些硬件设备提供音视频的合成以及编解码的功能接口,另外,通常这些设备都通过多个 阅读全文

posted @ 2017-11-19 12:49 Hello-World3 阅读(344) 评论(0) 推荐(0) 编辑

signal()信号-2-函数
摘要:一、函数描述 1. signal() #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); signal()会将接收到的signum信 阅读全文

posted @ 2017-11-10 23:03 Hello-World3 阅读(1834) 评论(0) 推荐(0) 编辑

alpha和color key
摘要:一、alpha 1.透明度,一般取值0-255 2.Alpha 通道: Alpha 通道是为保存选择区域而专门设计的通道。在生成一个图像文件时,并不必须产生 Alpha 通道。通常它是由人们在图像处理过程中人为生成,并从中读取选择区域信息的。因此在输出制版时, Alpha 通道会因为与最终生成的图像 阅读全文

posted @ 2017-09-28 21:27 Hello-World3 阅读(4366) 评论(0) 推荐(0) 编辑

Make menuconfig生成文件
摘要:1.当我们在执行make menuconfig这个命令时,一共涉及到了以下几个文件: Linux内核根目录下的scripts文件夹 arch/$ARCH/Kconfig文件、各层目录下的Kconfig文件 根目录下的makefile文件、各层目录下的makefile文件 内核根目录.config文件 阅读全文

posted @ 2017-09-24 15:06 Hello-World3 阅读(4618) 评论(0) 推荐(0) 编辑

Linux引导启动顺序
摘要:1.所有的__init函数在区段.initcall.init中还保存了一份函数指针,在初始化时内核会通过这些函数指针调用这些__init函数,并在整个初始化完成后,释放整个init区段(包括.init.text,.initcall.init等)。注意,这些函数在内核初始化过程中的调用顺序只和这里的函 阅读全文

posted @ 2017-09-23 16:09 Hello-World3 阅读(741) 评论(0) 推荐(0) 编辑

导航