<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Y2002168的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Y2002168</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Y2002168]]></copyright><item><title><![CDATA[insmod 的基本功能]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/152078195</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/152078195</guid><author>Y2002168</author><pubDate>Thu, 25 Sep 2025 11:38:34 +0800</pubDate><description><![CDATA[✔ 动态加载内核模块（如摄像头驱动、文件系统等）。✔ 按严格顺序加载，必须满足依赖关系。✔ 适用于嵌入式调试，但生产环境更推荐 modprobe​。]]></description><category></category></item><item><title><![CDATA[FFMPEG 库]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/152078159</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/152078159</guid><author>Y2002168</author><pubDate>Thu, 25 Sep 2025 11:37:38 +0800</pubDate><description><![CDATA[FFmpeg 是一个开源的 多媒体处理框架，用于 录制、转码、流式传输、编辑和分析 几乎任何音视频格式。它的核心是一个命令行工具，但也可作为库（libavcodec​​、libavformat​​ 等）集成到其他软件（如 VLC、YouTube、Premiere）。]]></description><category></category></item><item><title><![CDATA[RTSP | RTP 协议]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/152078133</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/152078133</guid><author>Y2002168</author><pubDate>Thu, 25 Sep 2025 11:37:03 +0800</pubDate><description><![CDATA[RTP：是“卡车”，负责运输音视频数据（快速但不可靠）。RTSP：是“调度员”，指挥卡车何时出发/停车（但不关心货物内容）。RTCP：是“质检员”，监控卡车运输是否顺畅（丢包、延迟）。现代系统（如WebRTC）可能直接使用RTP/RTCP而不依赖RTSP，但理解两者区别仍是流媒体开发的基础。RTP：运输队（负责送货）。RTCP：质检员（检查货物是否完好，反馈路况）。RTSP：调度中心（决定何时发货、走哪条路线）。]]></description><category></category></item><item><title><![CDATA[标签显示中文]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/141126437</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/141126437</guid><author>Y2002168</author><pubDate>Mon, 12 Aug 2024 11:11:29 +0800</pubDate><description><![CDATA[LVGL内置有一个中文字库 CJK字库，这个字库在 i_conth中定义为:LV_FONT_SIMSUN_16_CIK。要在Ivgl中使用显示自己的中文字库，我们需要用到两个东西:字体文件和字体转换器字体文件我们可以使用开源的字体或者自己制作出来，准备好了字体文件之后使用字体转换器即可转换成可以在lgl上使用的字体格式。如果指针指向的内存区域在函数返回后被释放，那么标签上的文本可能会出现问题。在这个例子中，由于字符串是在 .rodata 段中，所以即使函数退出，指针仍然有效，因此标签上的文本仍然可见。]]></description><category></category></item><item><title><![CDATA[标签（label）组件的使用]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/141124078</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/141124078</guid><author>Y2002168</author><pubDate>Mon, 12 Aug 2024 10:14:17 +0800</pubDate><description><![CDATA[标签主要用于显示静态或动态的文字信息，如提示、标题、状态等。：可以设置标签的位置和对齐方式，使其适应不同的屏幕布局需求。：支持动态更改标签中的文本内容，比如实时数据显示。：虽然标签本身通常不具备交互功能，但可以通过改变其内容或样式来响应用户的操作，提供视觉反馈。：可以结合多语言系统，在不同语言环境下显示相应的文字。]]></description><category></category></item><item><title><![CDATA[lvgl的事件冒泡]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/141123832</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/141123832</guid><author>Y2002168</author><pubDate>Mon, 12 Aug 2024 10:04:47 +0800</pubDate><description><![CDATA[当用户交互（如触摸屏点击）发生在一个对象上时，该对象会首先接收到事件。如果对象启用了事件冒泡标志，并且没有处理该事件，事件会被传递给它的父对象。如果父对象也启用了事件冒泡并且没有处理事件，事件将继续向上传递，直到找到处理该事件的对象或者达到顶层对象为止。：每个对象可以注册一个或多个事件处理器来处理特定类型的事件。事件处理器会在事件发生时被调用。：LVGL支持多种事件类型，包括但不限于 LV_EVENT_CLICKED, LV_EVENT_PRESSED, LV_EVENT_RELEASED 等。]]></description><category></category></item><item><title><![CDATA[Lvgl的对象]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/141123474</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/141123474</guid><author>Y2002168</author><pubDate>Mon, 12 Aug 2024 09:57:51 +0800</pubDate><description><![CDATA[LVGL 中的对象（widgets）可以接收多种类型的事件，这些事件可以由用户的输入动作触发，也可以由 LVGL 自身触发。LVGL 还支持事件冒泡机制，即如果一个子对象接收到一个事件，而它的事件处理函数没有明确阻止冒泡，那么该事件将会传播给它的父对象，直到被某个对象的事件处理函数阻止。LVGL 的事件系统允许你为各种对象注册不同的事件处理程序，从而实现丰富的用户交互功能。在 LVGL 中，事件是指由用户操作（如触摸或按键）或系统操作（如对象状态的变化）引发的动作。：由输入设备触发的事件，如触摸屏或键盘。]]></description><category></category></item><item><title><![CDATA[SPI简介]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/140183402</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/140183402</guid><author>Y2002168</author><pubDate>Thu, 04 Jul 2024 16:42:35 +0800</pubDate><description><![CDATA[并行通信------数据各位同时发送串行通信------数据一位一位发送    （SPI）SPI的四根线：1.MISO (主设备数据输入，从设备输出)2.MOSI（主设备输出，从设备输入）3.SCLK   (时钟信号)4.CS/SS（片选信号）------选择哪一个从机。]]></description><category></category></item><item><title><![CDATA[蜂鸣器响+shell脚本]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139929424</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139929424</guid><author>Y2002168</author><pubDate>Mon, 24 Jun 2024 17:36:32 +0800</pubDate><description><![CDATA[这三个API是在#include <wiringPi.h>头文件里面的，这个是第三方库；需要使用 -lwiringPi -lwiringPiDev -lpthread -lcrypt -lrt。//设置IO口输出低电频，蜂鸣器响。//设置IO口的输入/输出。//初始化wiringpi库。来进行编译，为了方便，所以使用了shell来进行简化；1.这里是使用了三个新的API;]]></description><category></category></item><item><title><![CDATA[OrangePi ZERO 2 外设应用程序开发之接口]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139929301</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139929301</guid><author>Y2002168</author><pubDate>Mon, 24 Jun 2024 16:09:10 +0800</pubDate><description><![CDATA[OrangePi ZERO 2 开发板 26 Pin 接口引脚的顺序请参考下图：每个引脚的具体功能可以参考下表：26 Pin 接口中总共有 17 个 GPIO 口，所有 GPIO 口的电压都是 3.3v​ 的。]]></description><category></category></item><item><title><![CDATA[Linux网络编程2]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139928807</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139928807</guid><author>Y2002168</author><pubDate>Mon, 24 Jun 2024 16:04:47 +0800</pubDate><description><![CDATA[设置能处理的最大连接数，listen并未开始接受连线，只是设置了socket的listen模式，listen函数只用于服务器端，服务器进程不知道要与谁进行连接，因此，它不会主动的要求与某个进程连接，只是一直监听是否有其他客户进程与之连接，然后响应该连接请求，并对它做出处理，一个服务进程可以同时处理多个客户进程的连接，主要就连个功能：将一个未连接的套接字转换为一个被动套接字（监听），规定内核为相应套接字排队的最大连接数。上述两者结构体长度一样，都是16个字节，即占用的内存大小是一致的，因此可以互相转化。]]></description><category></category></item><item><title><![CDATA[linux的UDEV机制]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139928742</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139928742</guid><author>Y2002168</author><pubDate>Mon, 24 Jun 2024 15:54:11 +0800</pubDate><description><![CDATA[SYSFS{filename}：设备的devpath路径下，设备的属性文件"filename"里的内容；一个守护进程的父进程是init进程，因为它真正的父进程在fork出子进程后就先于子进程exit退出。UDEV守护进程，它能够根据系统中的硬件设备的状态动态更新设备文件，包括设备文件的创建，删除等。udev是一个设备管理工具，udev以守护进程的形式运行，通过侦听内核发出来的uevent来管。件设备的状态动态更新设备文件，包括设备文件的创建，删除等。BUS：设备在devpath里的总线名称，例如：usb；]]></description><category></category></item><item><title><![CDATA[进场间通信2（共享内存）]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139046406</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139046406</guid><author>Y2002168</author><pubDate>Mon, 20 May 2024 09:16:00 +0800</pubDate><description><![CDATA[共享内存，顾名思义就是允许两个不相关的进程访问同一个逻辑内存，共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。注意：size： 大于0的整数：新建的共享内存大小，以字节为单位 3,072k（3kb）删除系统中的共享存储段ipcrm -m [shmid]]]></description><category></category></item><item><title><![CDATA[进程间通信3（信号，信号量）]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139046542</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139046542</guid><author>Y2002168</author><pubDate>Mon, 20 May 2024 09:15:47 +0800</pubDate><description><![CDATA[信号量与上面的IPC结构不同，上面的IPC是可以发数据的，而信号量是不能发数据，它是一个计数器，信号量用于实现进程间的互斥与同步，而不是用于储存进程间通信数据。Linux下的信号量函数都是在通用的信号量数组上进行操作，而不是 一个单一的二值信号量上进程操作 二值信号量：信号量只能取0或者1的变量。对于 Linux，实际信号是软中断，许多重要的程序也需要处理信号，信号能为 Linux 提供一种处理异常的方法，比如 Ctrl + C 中断 程序，会通过信号机制停止程序。siginfo_t有下列的内容。]]></description><category></category></item><item><title><![CDATA[Linux线程（创建--等待--退出）]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139046608</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139046608</guid><author>Y2002168</author><pubDate>Mon, 20 May 2024 09:15:29 +0800</pubDate><description><![CDATA[线程与进程典型的UNIX/Linux进程可以看成只有一个控制线程：一个进程在同一时刻只做一件事情。有了多个控制线程后，在程序设计时可以把进程设计成在同一时刻做不止一件事，每个线程各自处理独立的任务。线程：是程序执行时的一个实例，是担当分配系统资源（CPU时间、内存等）的基本单位。在面向线程设计的系统中，进程本身不是基本运行单位，而是线程的容器。程序本身只是指令、数据及其组织形式的描述，进程才是程序（那些指令和数据）的真正运行实例。进程：线程是操作系统能够进行运算调度的最小单位。]]></description><category></category></item><item><title><![CDATA[Linux线程2（互斥锁）]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139046660</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139046660</guid><author>Y2002168</author><pubDate>Mon, 20 May 2024 09:15:10 +0800</pubDate><description><![CDATA[一、死锁的定义多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而，并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局（互相等待），若无外力作用，这些进程都将无法向前推进。二、死锁产生的原因系统资源的竞争通常系统中拥有的不可剥夺资源，其数量不足以满足多个进程运行的需要，使得进程在 运行过程中，会因争夺资源而陷入僵局，如磁带机、打印机等。只有对不可剥夺资源的竞争 才可能产生死锁，对可剥夺资源的竞争是不会引起死锁的。进程推进顺序非法。]]></description><category></category></item><item><title><![CDATA[Linux线程（条件）]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139046695</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139046695</guid><author>Y2002168</author><pubDate>Mon, 20 May 2024 09:14:39 +0800</pubDate><description><![CDATA[在之前提供的示例代码中，生产者和消费者是两个不同的线程函数，它们分别用于生产数据和消费数据，模拟生产者-消费者问题。]]></description><category></category></item><item><title><![CDATA[线程和信号量]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139046755</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139046755</guid><author>Y2002168</author><pubDate>Mon, 20 May 2024 09:13:49 +0800</pubDate><description><![CDATA[在 Linux 中，线程（Thread）是进程内的一条执行路径，也被称为轻量级进程。线程与进程共享同一进程的资源，包括内存空间、文件描述符等，但拥有独立的执行路径。多个线程可以同时执行不同的任务，提高了程序的并发性和效率。信号量（Semaphore）是一种用于进程间通信和同步的机制。它是一个计数器，用于控制对共享资源的访问。信号量通常用于解决进程之间的互斥和同步问题，确保多个进程或线程之间的协调性和顺序性。总的来说，线程是进程内的执行路径，用于实现程序的并发执行；]]></description><category></category></item><item><title><![CDATA[IPC的补充]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139046397</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139046397</guid><author>Y2002168</author><pubDate>Sun, 19 May 2024 18:21:46 +0800</pubDate><description><![CDATA[管道：




]]></description><category></category></item><item><title><![CDATA[进程间通信1（IPC）]]></title><link>https://blog.youkuaiyun.com/Y2002168/article/details/139046346</link><guid>https://blog.youkuaiyun.com/Y2002168/article/details/139046346</guid><author>Y2002168</author><pubDate>Sun, 19 May 2024 18:20:34 +0800</pubDate><description><![CDATA[pipe---无名管道mkfifo---有名管道msgget ----用于创建一个新的或打开一个已经存在的消息队列，此消息队列与key相对应。msgrcv 功能---从标识符为msqid的消息队列读取消息并存于msgp中，读取后把此消息从消息队列中删除。msgsnd 功能---将msgp消息写入到标识符为msqid的消息队列。]]></description><category></category></item></channel></rss>