搭建一个和linux开发者知识共享和学习的平台
发布时间:2024-10-17 15:48:07
Linux-3.5 引入了一套 Contiguous Memory Allocator,简称 CMA,基于 DMA 映射框架为内核提供连续大块内存的申请和释放。CMA 主要思路是将预留内存纳入 DMA 映射管理,可以给系统内所有设备共享使用,这样就既解决了为 GPU、Camera、显示等图像处理类模块预留大块的连续内存,又解决了预留内存被空置的问题,提升内存使用.........【阅读全文】
发布时间:2024-10-17 10:30:36
在异步框架中,子设备被称为struct v4l2_async_subdev结构。两者都在include/media/v4l2-async.h......【阅读全文】
发布时间:2024-10-16 10:40:01
struct v4l2_device:硬件设备可能包含多个子设备,例如电视卡以及捕获设备,可能还有 VBI 设备或 FM 调谐器。v4l2_device是所有这些设备的根节点,负责管理所有子设备。struct video_device:此结构的主要目的是提供众所周知的/dev/videoX或/dev/v4l-subdevX设备节点。此结构主要抽象了捕获接口,也称为/dev/v4l-subdevX.........【阅读全文】
发布时间:2024-08-23 10:38:40
CPU写内存的时候有两种方式: write through: CPU直接写内存,不经过cache。write back: CPU只写到cache中。cache的硬件使用LRU算法将cache里面的内容替换到内存。通常是这种方式。 DMA可以完成从内存到外设直接进行数据搬移。但DMA不能访问CPU的cache,CPU在读内存的时候,如果cache命中.........【阅读全文】
发布时间:2024-08-16 15:42:28
vb2_buffer是V4L2框架中videobuf2库的核心数据结构,代表了一个视频缓冲区。它的作用是管理视频数据缓冲区的生命周期,包括缓冲区的分配、准备、排队、处理、完成和清理等。vb2_buffer通常与vb2_queue一起使用,后者管理着一个或多个vb2_buffer实例,形成了一个缓冲区队列。以下是vb2_buffer的一些主要用途:缓冲区分配.........【阅读全文】