文艺小少年
这个作者很懒,什么都没留下…
展开
-
内核驱动项目(二)sensor驱动介绍
上篇文章和大家介绍了从sensor到ISP的连接框架,本篇就从代码层面,讲解一下sensor部分的实现原理原创 2024-08-09 13:35:35 · 48 阅读 · 0 评论 -
内核驱动项目(一)camera相关接口介绍及DTS配置
色彩校正(Color Correction): 调整图像的色彩,以补偿传感器的色彩偏差,提供准确的颜色。RGGB: 四分之一像素采用红色,四分之一像素采用绿色,四分之一像素采用绿色,四分之一像素采用蓝色。BGGR: 四分之一像素采用蓝色,四分之一像素采用绿色,四分之一像素采用绿色,四分之一像素采用红色。GRBG: 四分之一像素采用绿色,四分之一像素采用红色,四分之一像素采用蓝色,四分之一像素采用绿色。GBRG: 四分之一像素采用绿色,四分之一像素采用蓝色,四分之一像素采用红色,四分之一像素采用绿色。原创 2024-08-09 13:32:30 · 130 阅读 · 0 评论 -
Linux内核--DTS构成及使用全面介绍(包含驱动引用)
本篇会全面的介绍一下DTS的构成,使用、如何在系统中指定使用的dtb文件,最后会以一个实际的dts文件,对应到驱动中,讲解如何使用原创 2024-05-10 10:42:35 · 480 阅读 · 0 评论 -
Linux内核--设备驱动(十)BT
本章跟着上一章,继续介绍下Linux中的BT驱动框架原创 2024-05-08 22:52:39 · 80 阅读 · 0 评论 -
Linux内核--设备驱动(七)媒体驱动框架整理--HDMI框架(2)
前一章我们分析过drm中enconder与connector都是在具体的显示驱动中完成(hdmi),所以我们可以根据不同的显示接口来修改这两个部件本章就来详细介绍下DRM框架原创 2024-05-07 21:33:18 · 276 阅读 · 0 评论 -
Linux内核--设备驱动(七)媒体驱动框架整理--HDMI框架(1)
V4L2 主要用于处理视频设备(如摄像头、视频采集卡等)的输入和输出,而 DRM 主要用于管理图形硬件设备(如显卡、显示器等)的渲染和显示。本文主要介绍HDMI驱动框架原创 2024-05-07 21:30:11 · 323 阅读 · 0 评论 -
简单介绍gitlab的使用
gitlab的下载安装及使用介绍原创 2022-09-14 14:55:33 · 429 阅读 · 0 评论 -
Linux内核学习--cache与buffer及CPU性能调优
一、引言二、进程同步的几种机制------> 1、进程同步的概念------> 2、进程同步机制遵循的原则三、同步机制一、引言二、cache与buffer两者区别cache是缓存,buffer是缓冲,他们最直观的区别在于cache是随机访问,buffer往往是顺序访问。将他们分开来说:read cache(读缓存),read buffer(读缓冲),write cache(写缓存),write buffer(写缓冲)。让我无论缓存还是缓冲,其实本质上解决的都是读写速度不匹配的原创 2021-12-26 20:58:58 · 1112 阅读 · 0 评论 -
Linux内核学习--ARM系列处理器(指令集等)性能全面分析
目录一、引言二、ARM处理器类型------> 2.1、Classic系列------> 2.2、Cortex系列------------> 2.2.1、Cortex-M系列------------> 2.2.2、Cortex-R系列------------> 2.2.3、Cortex-A系列------------> 2.2.4、Cortex-A50系列三、应用场景四、指令集------> 4.1、ARM架构------> 4.2、C原创 2021-10-12 20:15:43 · 416 阅读 · 0 评论 -
Linux内核学习--硬盘、内存与文件系统
目录一、引言二、硬盘------> 2.1、硬盘文件系统类型------> 2.2、U盘的挂载------> 2.3、硬盘的挂载三、虚拟文件系统------> 3.1、虚拟文件系统介绍------> 3.2、ramfs------> 3.3、tmpfs------> 3.4、devpts一、引言最近在看linux中硬盘、内存相关的东西,顺便来系统性的整理下,主要会分为三块:硬盘、内存、文件系统二、硬盘硬盘,也就是我们平常所说的磁盘,用于存原创 2021-10-09 15:57:59 · 353 阅读 · 0 评论 -
Linux内核学习--常用调试命令
目录一、引言二、常用调试命令------> 2.1、file------> 2.2、ldd------> 2.3、nm------> 2.4、strings------> 2.5、size------> 2.6、strip------> 2.7、readelf------> 2.8、查看文件大小------------> 2.8.1、df -h------------> 2.8.2、du -sh *一、引言前一篇文章介绍原创 2021-10-03 11:32:51 · 312 阅读 · 0 评论 -
Linux内核学习--常见的几种调试方式(内核/应用层)
目录一、引言二、调试手段------> 2.1、printf/printk------> 2.2、proc------------> 2.2.1、proc通过meminfo查找应用进程的内存泄漏问题------------> 2.2.2、proc/slabinfo------> 2.3、smaps------------> 2.3.1、虚拟内存------------> 2.3.2、驻留内存------------> 2.3.3、top-原创 2021-09-30 16:57:01 · 363 阅读 · 0 评论 -
Linux编程学习--段错误之(SEGV_MAPERR)的跟踪解决
一、引言二、System V IPC------> 1、IPC种类------> 2、进程同步机制遵循的原则------> 3、IPC key(键值)------> 4、IPC key的创建方法------------> 4.1、 fork------------> 4.2、IPC_PRIVATE------------> 4.3、用户自定义一、引言在应用程序中,经常会出现内存使用相关的错误,今天就分享一下我遇到的一个段错误—SIGSEGV(SE原创 2021-04-26 15:56:38 · 3184 阅读 · 0 评论 -
Linux编程学习--进程间通讯(二)System V IPC
一、引言二、进程同步的几种机制------> 1、进程同步的概念------> 2、进程同步机制遵循的原则三、同步机制------> 1、锁------> 2、信号量四、同步机制详细介绍------> 1、原子操作------> 2、信号量(semaphore)------> 3、读写信号量(rw_semaphore)------> 4、自旋锁(spinlock)------> 5、读写锁(rwlock)------> 6原创 2021-04-17 15:41:54 · 189 阅读 · 0 评论 -
Linux编程学习--进程间通讯(一)早期的通讯方式
一、引言二、进程同步的几种机制------> 1、进程同步的概念------> 2、进程同步机制遵循的原则三、同步机制------> 1、锁------> 2、信号量四、同步机制详细介绍------> 1、原子操作------> 2、信号量(semaphore)------> 3、读写信号量(rw_semaphore)------> 4、自旋锁(spinlock)------> 5、读写锁(rwlock)------> 6原创 2021-04-17 14:42:55 · 137 阅读 · 0 评论 -
Linux内核学习--进程同步机制的分析与学习(结合内核源码)
一、引言二、进程同步的几种机制------> 1、进程同步的概念------> 2、进程同步机制遵循的原则------------> 2.1、MonitorInfoView------------> 2.2、Deltacast E-EDID Editor------------> 2.2、EDID Manager------------> 2.2、bin与c的转换------> 3、非标准分辨率的支持三、同步机制------> 1、锁--原创 2021-03-18 16:45:54 · 256 阅读 · 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 · 419 阅读 · 0 评论 -
Linux驱动学习--DB数据库介绍与sqlite的使用
一、引言二、数据库介绍三、SQL语言------> 1、DML、DDL的概念与区别------> 2、SQL中的各类语言四、sqlite库------> 1、打开数据库------> 2、关闭数据库------> 3、执行squl语句------> 4、sqlite 常用命令 (Select、Update等)------> 5、实例一、引言因项目中使用到了DB数据库,之前这块了解的很少,具体就来系统性的整理下数据库介绍先来看一张图数据原创 2021-01-16 15:51:08 · 407 阅读 · 1 评论 -
Linux驱动学习--dbus通讯分析(二)dbus的实际使用
一、引言二、GTK中的dbus使用------> 1、dbus接口相关的定义------> 2、初始化------> 3、发送dbus信号------> 4、接收dbus信号------> 5、需要双方协商的dbus配置一、引言根据前一篇Linux驱动学习–dbus通讯分析(结合源码分析),本篇来实际讲解dbus的使用GTK中的dbus使用RTK库目前大部分都被整合到glibc中,不同平台都可以调用该库来完成RTK编程接下来就来分析下其中dbus的使用d原创 2020-12-31 11:40:37 · 699 阅读 · 0 评论 -
Linux驱动学习--HDMI开发(三)基于DRM框架的显示控制器与HDMI驱动(音视频)深入分析
本篇文章会以DRM框架为基础,详细讲解显示控制器(vop)与HDMI驱动原创 2021-01-25 11:33:55 · 367 阅读 · 1 评论 -
Linux驱动学习--音频传输之I2S接口时序的配置
目录一、引言二、dbus介绍------> 1、DBUS应用场景三、dbus的实现------> 1、实现原理------> 2、连接到总线------------>2.1、总线类型------> 3、进程注册到总线上的流程------> 4、信号发送------> 5、信号接收------> 6、发送函数调用的消息类型------> 7、接收函数调用的消息类型一、引言二、I2S传输通常,音频数据都由I2S协议来传输,在I2原创 2020-12-26 14:26:36 · 2738 阅读 · 0 评论 -
Linux驱动学习--dbus通讯分析(结合源码分析)
目录一、引言二、dbus介绍------> 1、DBUS应用场景三、dbus的实现------> 1、实现原理------> 2、连接到总线------------>2.1、总线类型------> 3、进程注册到总线上的流程------> 4、信号发送------> 5、信号接收------> 6、发送函数调用的消息类型------> 7、接收函数调用的消息类型一、引言今天来整理下dbus,linux中经常用到的多进程通讯机制原创 2020-12-16 20:32:37 · 1416 阅读 · 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 · 1419 阅读 · 1 评论 -
Linux驱动学习--V4L2设备(四)control详解(结合vivi虚拟摄像头源码分析)
目录一、引言二、内核同步------> a、RCU------> b、spinlock 自旋锁------> c、信号量与互斥体------> d、顺序锁------> e、读写锁三、总结一、引言videobuf2 用于连接 V4L2 驱动层与用户空间层,提供数据交流的通道,它可以分配并管理视频帧数据。videobuf 层实现了很多 ioctl 函数,包括 buffer 分配、入队、出队和数据流控制。...原创 2020-12-06 14:57:32 · 787 阅读 · 0 评论 -
Linux驱动学习--Android项目之芯片启动流程
目录一、引言二、芯片启动流程分析------> BOOTROM------> SPL------> 启动流程三、常见的存储设备一、引言做Android项目开发已经有段时间了,回想起来还没好好整理过芯片上电开机的一个流程,可能是相关的SDK已经比较完善吧,不过这块还是很有必要了解一下的,今天就来整理一下,期间也会介绍BOOTROM等相关部件二、芯片启动流程分析我们知道,刚出场的芯片或者开发板,都是还未烧写程序的一个状态,但是上电之后会直接进入maskrom模式,这其实就是原创 2020-11-28 19:26:56 · 458 阅读 · 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 · 1939 阅读 · 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 · 1501 阅读 · 0 评论 -
Linux驱动学习--中断机制及softirq、tasklet整理
目录一、引言二、linux中断机制的介绍------> 相关结构体------> 操作步骤三、softirq------> 内核中的softirq四、Tasklet一、引言前一章分析了内核中延迟执行的一些机制,这章来讲讲linux中常用的中断机制,会侧重介绍softirq、tasklet这两个机制二、linux中断机制的介绍对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),是全程关闭中断的,另外一部分是deferable原创 2020-10-29 11:08:19 · 302 阅读 · 0 评论 -
Linux驱动学习--等待队列、工作队列整理
目录一、引言二、驱动框架------> dts节点------> HDMI DDC 驱动------> HDMI HDCP驱动------> HDMI CEC驱动------> HDMI 主设备驱动一、引言最近在深入看阻塞相关东西,发现内核里有几个重要的机制,有点混淆,这章就来详细分析下。等待队列、工作队列、Tasklet都是linux驱动很重要的机制,二、等待队列(waitqueue)linux驱动中,阻塞一般就是用等待队列来实现,将进程停止在此处并睡原创 2020-10-28 20:28:20 · 377 阅读 · 0 评论 -
Linux驱动学习--设备节点创建及sysfs交互深入解析
一、引言二、设备节点------>设备驱动号的创建------>设备类/节点的创建三、sysfs的使用------>sysfs介绍------>sysfs重要目录分析------>动态设备节点四、sysfs下的交互方式------>SYSFS中属性文件的建立------>相关的数据结构------>一次创建多个属性节点------>类中添加设备属性一、引言前段时间一直有事,博客就一直没更新,最近稍微空一点,继续来更新博客啦!原创 2020-10-23 15:31:39 · 486 阅读 · 0 评论 -
Linux驱动学习--I2C设备驱动框架源码解析
一、引言二、源码分析------>I2C driver的注册------>I2C client的注册------>probe一、引言之前和大家分析了Linux中的I2C框架,本章来结合源码分析一个具体的I2C设备二、源码分析I2C driver的注册先看一下driver结构体struct i2c_driver { unsigned int class; /* Notifies the driver that a new bus has appeared原创 2020-09-28 20:25:27 · 385 阅读 · 0 评论 -
Linux驱动学习--文件系统学习(二)inode相关介绍
一、引言二、inode 和 block 概述三、inode------>inode的大小------>inode号码------>目录文件------>inode的使用一、引言之前简单介绍了一下linux中的文件系统,这章来分析一下inode相关的东西二、inode 和 block 概述文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次原创 2020-09-25 11:44:42 · 166 阅读 · 0 评论 -
Linux驱动学习--文件系统学习(一)文件系统框架简单介绍
目录一、引言二、数据传输流程------>PCM_read------>声卡驱动一、引言最近打算系统的整理一下文件系统相关的东西二、linux的文件系统在LINUX系统中有一个重要的概念:一切都是文件。 其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。这样带来优势也是显而易见原创 2020-09-25 10:53:46 · 301 阅读 · 0 评论 -
Linux驱动学习--I2适配器创建及使用(源码分析)
目录一、引言二、源码分析------> I2C总线dts节点------> I2C总线驱动------>在注册的I2C适配器上创建设备------>I2C驱动注册------>I2C适配器序列号指定一、引言之前分析了I2C驱动框架,知道了每个I2C设备都需要接在一条I2C总线上,也就是一个I2C适配器上,这篇文章就来分析一下I2C适配器注册的相关源码二、源码分析本篇文章会结合当前在做的项目来分析I2C框架I2C总线dts节点 i2c0:原创 2020-09-18 20:28:40 · 221 阅读 · 0 评论 -
Linux驱动学习--USB接口蓝牙芯片驱动获取数据详解
目录一、引言二、驱动分析------>USB部分------>urb的使用------>循环接收数据三、pcm_read简要分析一、引言分析贴一张之前分析过的PCM_read 流程pcm_read tinyalsa/pcm.c ioctl(pcm->fd, SNDRV_PCM_IOCTL_READI_FRAMES, &x) ====>snd_pcm_playback_ioctl1 kernel/sound/core/pcm_native原创 2020-09-18 15:25:48 · 815 阅读 · 0 评论 -
Linux驱动学习--蓝牙数据传输物理结构介绍
目录一、引言二、HCI三、Controls的使用四、源码分析一、引言之前分析了很多,但都是蓝牙接收到数据后,由通讯接口通过各种类型的接口协议传输到主存的过程,而蓝牙是如何收发数据的呢,就来简单分析一下HCI主机控制接口(HCI)位于传输协议之中,它并不是严格意义上的通信协议,它仅为应用协议堆栈的高层部分提供了一个访问低层传输协议的指令接口。如果我们从HCI层出发,可以将蓝牙协议堆栈分为硬件与软件2个协议块。硬件部分由射频部分(RF)、基带部分(BB)、链路管理器部分(LM)和HCI固件构成原创 2020-09-18 10:16:10 · 514 阅读 · 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 · 433 阅读 · 0 评论 -
Linux驱动学习--ALSA框架(三)PCM设备的创建--以SCO虚拟声卡为例
目录一、引言二、框架介绍------> OSS 框架------> ALSA 框架------> 两个框架的联系一、引言之前分析了ALSA框架下声卡设备的创建,而其中提到了创建声卡的功能部件,而在这些功能部件中,又以PCM设备最为重要,这篇文章就来大体分析一下二、ALSA中的PCM设备1、PCM介绍PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的原创 2020-09-12 14:25:13 · 982 阅读 · 0 评论 -
Linux驱动学习--ALSA框架(二)声卡的创建--以SCO虚拟声卡为例
目录一、引言二、框架介绍------> OSS 框架------> ALSA 框架------> 两个框架的联系一、引言上篇文章分析了ALSA框架,这章开始和大家简单介绍ALSA框架下相关设备的创建,先说一下声卡的创建,正好使用前段时间调过的SCO虚拟声卡为例二、ALSA声卡相关结构体snd_cardsnd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第原创 2020-09-12 13:07:17 · 1398 阅读 · 0 评论 -
Linux驱动学习--ALSA框架(一)ALSA框架的介绍
目录一、引言二、代码框架三、网络设备框架常用接口介绍------> dts对应的通用驱动------> soc_camera_pdrv驱动------> 芯片驱动一、引言本篇文章来分析一下基于ALSA框架的声卡创建,以及在此基础上利用ASOC的声卡创建二、ALSA的使用...原创 2020-09-12 10:50:37 · 922 阅读 · 0 评论