排序
请说明V4L2架构的组成,以及内核层和用户层分别承担什么功能?mmap的原理是什么?
一、V4L2 架构的整体组成 V4L2(Video for Linux 2)是 Linux 内核中用于处理视频采集与输出设备的框架。它采用 内核空间 + 用户空间 的分层设计,大致分为以下几个部分: (1)用户层(User Sp...
标准I/O库的缓冲方式
标准I/O库提供缓冲的目的:尽可能减少使用read和 write调用的次数。它也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。 遗憾的是,标准I/O库最令人迷惑的也是它...
瑞芯微开发笔记 · MPP 篇(零)MPP介绍
MPP介绍 概述 MPP(Media Process Platform)是 Rockchip 提供的一套 硬件视频编解码中间件,用于统一调用芯片上 VPU(Video Processing Unit) 硬件资源,实现高性能视频编码和解码。MPP 是嵌...
线程同步之互斥锁:pthread_mutex_init,pthread_mutex_lock,pthread_mutex_unlock,pthread_mutex_destroy
主要函数说明 int pthread_mutex_init (pthread_mutex_t *__mutex,const pthread_mutexattr_t *__mutexattr)创建一个锁; int pthread_mutex_destroy (pthread_mutex_t *__mutex)销毁锁; int pth...
C语言 算法与数据结构 五种双向链表的实现方法
第一种 llist.h #ifndef __LLIST_H__ #define __LLIST_H__ #define LLIST_FORWARD 1 #define LLIST_BACKWARD 2 typedef void llist_op(void *); typedef int llist_cmp(const void *,const void...
C语言中的空指针NULL 与 void指针
空指针NULL 在C语言中,如果一个指针不指向任何数据,我们就称之为 空指针 ,用 NULL 表示。例如: int *p = NULL; 注意区分大小写,null 没有任何特殊含义,只是一个普通的标识符。 NULL ...
C++基础 构造函数、拷贝构造函数和析构函数
#include <iostream> using namespace std; /* 构造函数: 作用:初始化某类的对象 在一个对象被实例化生成时默认隐式调用 如果我们不写,系统会生成一个默认的构造函数 一旦我们自行实行,系...
嵌入式的那些通信协议
1.USART 通用同步/异步串行接收/发送器,USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。 区别于UART,UART是通用异步收发传输器,USART属于UART的增强型,...
在 RK3588 平台上编译 C++ 版本 gRPC 实战记录
本文记录了在 RK3588 嵌入式平台上(基于 Ubuntu 22.04)编译和安装 gRPC C++ 版本(v1.73.1)的完整流程,涵盖了从环境准备、NFS 挂载、源码编译到代码生成的全过程。 1. 环境准备与 NFS 挂载 ...








