文艺小少年
这个作者很懒,什么都没留下…
展开
-
简单介绍gitlab的使用
gitlab的下载安装及使用介绍原创 2022-09-14 14:55:33 · 426 阅读 · 0 评论 -
Linux驱动进阶学习--音视频格式及码流等相关概念介绍
一、引言二、视频格式------> 1、RGB------> 2、RGB常见格式(RGB888、RGB24等)------> 3、YUV------------> 2.1、YUV的常见采样格式(YUV422、YUV420等)------------> 2.2、YUV存储格式(YV12、NV12、NV21等)三、码流------> 1、视频分辨率、码流、帧率、带宽、存储空间------> 2、计算方式一、引言今天来系统整理下视频传输相关的知识二原创 2021-03-08 16:36:42 · 412 阅读 · 0 评论 -
Linux驱动学习--V4L2设备(五)V4L2 notify机制介绍(结合源码分析)
目录一、引言二、control框架介绍三、control的使用------> 1、对应结构体的初始化------> 2、初始化 v4l2_ctrl_handler------> 3、将v4l2_ctrl_handler挂接到驱动中------> 4、给 v4l2_ctrl_handler 添加控制一、引言V4L2框架的东西整体还是比较多的,也开了很多章来讲,当然肯定也会有很多东西没有涉及到,之后也会慢慢补充,这章先来讲一下V4L2中的事件机制,用于给主设备发送相关原创 2020-12-06 17:10:07 · 1403 阅读 · 0 评论 -
Linux驱动学习--V4L2设备(四)control详解(结合vivi虚拟摄像头源码分析)
目录一、引言二、内核同步------> a、RCU------> b、spinlock 自旋锁------> c、信号量与互斥体------> d、顺序锁------> e、读写锁三、总结一、引言videobuf2 用于连接 V4L2 驱动层与用户空间层,提供数据交流的通道,它可以分配并管理视频帧数据。videobuf 层实现了很多 ioctl 函数,包括 buffer 分配、入队、出队和数据流控制。...原创 2020-12-06 14:57:32 · 772 阅读 · 0 评论 -
Linux驱动学习--V4L2设备(二)subdev的ops介绍及media framework深入解析
目录一、引言二、media framework介绍三、media framework的使用------>entity的遍历------>stream on/off操作------>entity 连接过程一、引言之前在看V4L2设备注册的时候顺便了解了一下media framework,发现这块还是有很多东西需要了解的,所以单独开一章来好好讲一下v4l2中的media框架,会结合一个isp源码分析二、media framework介绍media,是我们在注册每一个v4l2原创 2020-11-21 23:48:02 · 1908 阅读 · 0 评论 -
Linux驱动学习--V4L2设备(一)驱动注册流程及meida_device介绍
目录一、引言二、v4l2设备注册过程------> v4l2_device_register------> video_register_device------> v4l2_device_register_subdev------> v4l2_device_register_subdev_nodes------>创建v4l-subdevX的通用方法三、meida_device------>media framework------>media原创 2020-11-08 15:49:52 · 1480 阅读 · 0 评论 -
Linux驱动学习--蓝牙数据传输物理结构介绍
目录一、引言二、HCI三、Controls的使用四、源码分析一、引言之前分析了很多,但都是蓝牙接收到数据后,由通讯接口通过各种类型的接口协议传输到主存的过程,而蓝牙是如何收发数据的呢,就来简单分析一下HCI主机控制接口(HCI)位于传输协议之中,它并不是严格意义上的通信协议,它仅为应用协议堆栈的高层部分提供了一个访问低层传输协议的指令接口。如果我们从HCI层出发,可以将蓝牙协议堆栈分为硬件与软件2个协议块。硬件部分由射频部分(RF)、基带部分(BB)、链路管理器部分(LM)和HCI固件构成原创 2020-09-18 10:16:10 · 505 阅读 · 0 评论 -
Linux驱动学习--ALSA框架(四)Control设备的创建
目录一、引言二、ALSA中的PCM设备------> PCM介绍------> alsa-driver中的PCM中间层------> 重要结构体三、PCM设备的创建使用------> snd_pcm_new源码分析------> snd_pcm_set_ops------> 设备文件节点的建立(dev/snd/pcmCxxDxxp、pcmCxxDxxc)ALSA驱动框架的应用流程------> ALSA字符设备的注册------> AL原创 2020-09-13 14:10:54 · 418 阅读 · 0 评论 -
Linux驱动学习--ALSA框架(三)PCM设备的创建--以SCO虚拟声卡为例
目录一、引言二、框架介绍------> OSS 框架------> ALSA 框架------> 两个框架的联系一、引言之前分析了ALSA框架下声卡设备的创建,而其中提到了创建声卡的功能部件,而在这些功能部件中,又以PCM设备最为重要,这篇文章就来大体分析一下二、ALSA中的PCM设备1、PCM介绍PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的原创 2020-09-12 14:25:13 · 971 阅读 · 0 评论 -
Linux驱动学习--ALSA框架(二)声卡的创建--以SCO虚拟声卡为例
目录一、引言二、框架介绍------> OSS 框架------> ALSA 框架------> 两个框架的联系一、引言上篇文章分析了ALSA框架,这章开始和大家简单介绍ALSA框架下相关设备的创建,先说一下声卡的创建,正好使用前段时间调过的SCO虚拟声卡为例二、ALSA声卡相关结构体snd_cardsnd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第原创 2020-09-12 13:07:17 · 1354 阅读 · 0 评论 -
Linux驱动学习--ALSA框架(一)ALSA框架的介绍
目录一、引言二、代码框架三、网络设备框架常用接口介绍------> dts对应的通用驱动------> soc_camera_pdrv驱动------> 芯片驱动一、引言本篇文章来分析一下基于ALSA框架的声卡创建,以及在此基础上利用ASOC的声卡创建二、ALSA的使用...原创 2020-09-12 10:50:37 · 894 阅读 · 0 评论 -
Linux驱动学习--基于V4L2的Camera开发
目录一、引言二、驱动框架三、网络设备框架常用接口介绍------> 网卡部分------> USB部分一、引言之前整理过一篇关于V4L2的文章,但并没有实际的分析过一款camera的源码,今天就来分析一下二、代码框架我们项目中将camera驱动分为了几层,当然根本还是基于V4L2框架,本文主要分析驱动层芯片驱动层芯片驱动层主要为使用特定的功能,通常位于’kernel\drivers\media\video’目录下而在最后,会调用以下几个宏sensor_nt99141_i原创 2020-09-11 10:00:42 · 738 阅读 · 0 评论 -
Linux驱动学习--ALSA声卡驱动之PCM设备的参数设置及蓝牙SCO通话的调试
目录一、引言二、PCM设备相关的参数配置三、ASOC之PCM Write/Read 数据流引言之前调试的蓝牙SCO声卡,在通话是有杂音出现,需要排查原因,所以来系统整理一下PCM节点使用的相关部分二、PCM设备相关的参数配置1、声卡的声音缓存和数据传输每个声卡都有一个硬件缓存区来保存记录下来的样本。当缓存区足够满时,声卡将产生一个物理中断。内核声卡驱动然后使用直接内存(DMA)访问通道将样本传送到内存中的应用程序缓存区。类似地,对于回放,任何应用程序使用DMA将自己的缓存区数据传送到声卡的硬原创 2020-08-31 16:35:25 · 4073 阅读 · 0 评论 -
Linux驱动学习--android声卡之蓝牙‘sco over hci‘ 通话的使用配置(基于tinyalsa库)
目录一、引言二、sco over hci------>HCI接口------>驱动中的’sco over hci’开关三、声卡中PCM的使用配置(基于tinyalsa库、tiny工具)------>tiny 工具的使用------>tinycap、tinyplay源码分析------>tinyalsa库 源码分析---------------->pcm_open---------------->pcm_read----------------&原创 2020-08-21 10:44:09 · 1807 阅读 · 5 评论 -
Linux驱动学习--HDMI开发(二)HDMI驱动源码分析(RK平台)
目录一、引言二、驱动框架一、引言前一篇文章简单介绍了一下HDMI的整体结构,从硬件到协议,可以看到,确实包含了很多东西,这篇文章,就从驱动源码的角度,来分析一下HDMI二、驱动框架整体框架分析先来回顾一下几个名词HDCP: HDCP的全称是High-bandwidthDigital Content Protection,也就是“高带宽数字内容保护”。1、DDC: HDCP数据秘钥在CPU和显示设备间的交换以及EDID(EDID中包含有关显示器及其性能的参数)要通过hdmi 接口的两个DDC原创 2020-07-31 15:47:55 · 6127 阅读 · 1 评论 -
Linux驱动学习--HDMI开发(一) 相关协议及传输原理的介绍
目录一、引言二、HDMI硬件接口及相关协议-------> TMDS(转换最小化差分信令)-------> CEC(消费电子控制)-------> DDC(显示数据通道)-------> ARC(音频回传通道)-------> HEC(HDMI以太网通道)三、HDMI上层协议四、HDMI的基本传输原理一、引言最近做的项目有涉及到HDMI,故来整理一下HDMI(High-Definition Multiface Interface)是Hitach原创 2020-07-31 10:29:46 · 3892 阅读 · 3 评论 -
Linux驱动学习--蓝牙协议及HCI等通讯接口
目录一、引言二、蓝牙通讯接口PCM与I2Ssco over hci三、蓝牙通讯协议一、引言最近在做蓝牙方面的项目,发现这块了解的很少,所以来系统的整理一下二、蓝牙通讯接口HCI接口主机(计算机或MCU)与主机控制器(实际蓝牙芯片组)之间的通信遵循主机控制器接口(HCI),如下所示。HCI定义了如何交换命令,事件,异步和同步数据包。异步数据包(ACL)用于数据传输,而同步数据包(SCO)用于带有耳机和免提配置文件的语音。在桌面级计算机上 笔记本电脑,USB主要用作HCI传输层。对于US原创 2020-07-29 20:39:56 · 1826 阅读 · 0 评论 -
Linux驱动学习--DRM框架介绍及基于DRM框架的HDMI开发
目录一、引言二、DRM框架介绍三、DRM框架的使用四、源码分析一、引言Android4开始,hdmi等视频输出框架开始由framebuffer想DRM迁移,今天我们就来简单分析下DRM框架二、DRM框架介绍DRM是一个内核级的设备驱动,具体的说是显卡驱动的一种架构源码位置因为Linux kernel内部接口和数据结构可能随时发生变化,所以DRI模块要针对特定的内核版本进行编译。kernel 2.6.26之后的版本,DRM(DRI kernel模块)源码存放在kernel/drivers/原创 2020-06-11 17:56:58 · 5137 阅读 · 0 评论 -
Linux驱动学习--USB Audio 音频设备
一、引言本文来简单介绍下linux中的UAC设备二、音频设备的基础知识数字音频设备(有时也称codec,PCM,DSP,ADC/DAC设备):播放或录制数字化的声音。主要指标:采样速率 (电话为8K,DVD为96K)channel数目 (单声道,立体声)采样分辨率(8-bit,16-bit)mixer(混频器) :用来控制多个输入、输出的音量,也控制输入(microphone,li...原创 2020-04-25 15:33:55 · 4344 阅读 · 0 评论 -
Linux驱动学习--USB设备的接入及UAC设备描述符的讲解
一、引言任何USB设备在连接到USB接口后,主机检测到有新设备接入,会利用不同的请求命令(Request)查询该设备的属性,设备通过不同的描述符向主机报告自己的情况。包括设备的种类,设备的功能,设备具有的端点数量以及其他工作属性等等。在了解这些信息之后,主机就可以根据需要分配USB工作带宽。二、USB-UAC描述符分析Device Descriptors设备描述符struct _DEVIC...原创 2020-04-25 00:12:32 · 3528 阅读 · 0 评论 -
Linux驱动学习--V4L2框架
一、引言V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。V4L2在设计时,是要支持很多广泛的设备的,它们之中只有一部分在本质上是真正的视频设备。主要有以下几种几种接口视频采集接口(video capture interface):这种应用的设备...原创 2020-04-18 14:07:14 · 971 阅读 · 0 评论