自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 分析ov5640.c驱动

*================================ 以上操作可以统一称为硬件初始化 ===========================================*/// 初始化子设备的实体和pad。// 设置v4l2_subdev的名称。

2023-08-29 10:27:54 534

原创 ffmpeg 图片推流

【代码】ffmpeg 图片推流。

2023-08-27 20:16:04 379

原创 Linux内核i2c驱动详解

接下来,函数会处理设备的唤醒属性,如果设备设置了I2C_CLIENT_WAKE标志,则尝试获取设备的唤醒中断号,并设置设备的唤醒中断号。最后,函数会根据驱动的probe_new(新的驱动程序模型接口,有助于无缝删除当前probe()的,更常用的是未使用的第二个参数)或probe函数来执行设备的探测操作,并返回相应的状态。在ACPI风格的匹配方式中,驱动程序通过与系统的ACPI表进行交互来获取设备的信息,并根据设备的特征进行匹配。设备节点的属性可以包含设备的厂商ID、设备ID、设备类型等信息。

2023-08-20 17:22:46 894 1

原创 初识FFmpeg

通道 channels 左右通道,双通道(数据量增大一倍),1.5通道, 样本大小(格式)就是我们采样的值是用多大来存储的,对应有一个值的。YUV存在的多种格式,一般会采用软解码。解封装(本来我们看到的文件都是mp4,flv流媒体格式等格式的文件,首先需要识别这些文件格式才能解析里面的内容,这部就解封装)解码(解封装看到的数据是经过 压缩的音视频流,如果需要播放或者再次处理需要进行解码,编码的反向操作,就是视频需要显示就需要解码成显卡支持的像素格式,音频需要播放处理就需要重采样成声卡支持的格式)

2023-08-19 22:02:52 253

原创 Linux内核V4L2架构

V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动。是linux操作系统下一套用于采集图片、视频和音频数据的通用API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。​ V4L2支持三种方式来采集图像:内存映射方式(mmap)、直接读取方式(read)和用户指针;

2023-08-18 09:47:19 1751 1

原创 输入子系统

之后list_for_each_entry(handler,&input_handler_list,node) input_attach_handler(dev,handler);若之前驱动input_dev和处理input_handler已经通过input_handler 的.connect函数建立起了连接,那么就调用evdev_event()的.event事件函数,之后在wake_up_interruptible(&evdev->wait),来唤醒evdev_read函数。

2023-06-05 00:25:03 153 1

原创 初识Linux内存

这些段寄存器分别为cs(代码段寄存器)它包含一个两位的字段以指明cpu当前的特权0最高3最低,而我们Linux里只有0和3即内核态和用户态,ss(栈段寄存器),ds(数据段寄存器,指向包含静态数据段或全局数据段),es,fs,gs,做一般用途可以指向任意数据段。页内部连续的线性地址被映射到物理地址中,分页单元把所有的RAM分成固定长度的页框(物理页),每一个页框包含一个页,页框是主存的一部分,把线性地址映射到物理地址的数据结构称为页表,也存放在主存中,在启用分页单元前要对其进行初始化。

2023-05-30 01:07:53 80 1

原创 linux内核链表最细讲解

由于知道了大小结构体之间的偏移量我们又将小结构体转变成(char*)类型使其一个字节一个字节移动故(char*)_mptr-((size_t)&((TYPE*)0)->MEMBER)是将我们小结构体的地址减去其偏移量得到大结构体变量的首地址,(type*)(char*)_mptr-((size_t)&((TYPE*)0)->MEMBER)之后在将其强转为大结构体指针类型。同理我们第一步将list节点截切出来,即用删除操作令其掉出链表,之后我们将list节点插在head的前面完成了对list节点的移动。

2023-04-12 02:09:49 939 3

空空如也

空空如也

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

TA关注的人

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