<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Yuosy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Yuosy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Yuosy]]></copyright><item><title><![CDATA[《uboot基础命令记录①》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/156460175</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/156460175</guid><author>Yuosy</author><pubDate>Wed, 31 Dec 2025 16:17:01 +0800</pubDate><description><![CDATA[这些基础命令简单了解掌握，本来还有一个网络操作命令的，由于缺少路由器，uboot下的网络比较难搞，打算在后续linux篇章再介绍目前还只总结了一部分，后续还要再补充，但是这个网络真的麻烦啊，没路由器只能再虚拟机网络桥接网线和无线来回摆动，浪费了很多时间，尤其是这个nfs，版本兼容问题，气死我了！！！不过好在加深了印象，继续努力😀。]]></description><category></category></item><item><title><![CDATA[《创作一周年有感》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/154070313</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/154070313</guid><author>Yuosy</author><pubDate>Wed, 29 Oct 2025 14:09:19 +0800</pubDate><description><![CDATA[到现在我写下的文章也有26篇了，他确确实实帮助我理解，温故，同时写下也让我对于内容印象更深刻，不至于读完就忘记。感恩csdn,感恩大家！]]></description><category></category></item><item><title><![CDATA[《从 register_chrdev 到 cdev：Linux 新字符设备驱动详解》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/153973020</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/153973020</guid><author>Yuosy</author><pubDate>Mon, 27 Oct 2025 16:12:45 +0800</pubDate><description><![CDATA[之前写的旧驱动是入门的必修课，这个新驱动是进阶到“真正 Linux 驱动”的那一步。两者关系就像：学手动挡（理解发动机） → 开自动挡（方便实用）。参考文档：《正点原子驱动开发指南》]]></description><category></category></item><item><title><![CDATA[《i.MX6ULL LED 驱动实战：内核模块开发与 GPIO 控制》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/153686577</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/153686577</guid><author>Yuosy</author><pubDate>Tue, 21 Oct 2025 17:45:00 +0800</pubDate><description><![CDATA[本文介绍了Linux驱动开发中访问硬件寄存器的关键方法。由于Linux启用了MMU虚拟内存机制，不能直接操作物理地址，必须通过ioremap()将物理地址映射为虚拟地址才能访问。文章详细讲解了ioremap()和iounmap()函数的使用方法、参数说明和注意事项，并通过LED驱动代码示例展示了实际应用场景。在驱动代码中，首先映射多个GPIO寄存器物理地址，然后通过readl()和writel()安全访问这些寄存器，最后在模块卸载时解除映射。这种机制确保了在内核态下对硬件寄存器的安全访问。]]></description><category></category></item><item><title><![CDATA[《i.MX6ULL LED 裸机开发实战：从寄存器到点亮》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/153561961</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/153561961</guid><author>Yuosy</author><pubDate>Sun, 19 Oct 2025 12:37:01 +0800</pubDate><description><![CDATA[本文通过一个 LED 裸机开发实验，带领读者从汇编到 C 语言，理解 GPIO 控制与寄存器操作的基本流程。文章介绍了引脚复用（MUX）和管脚属性（PAD）的概念，并演示了如何通过寄存器配置实现 LED 点亮。通过汇编展示底层原理，再通过 C 语言封装结构体和宏定义提高代码可读性和维护性。本文帮助读者建立裸机开发框架，为后续 Linux 驱动开发打下基础，同时为理解物理地址与虚拟地址在内核下的操作做铺垫。]]></description><category></category></item><item><title><![CDATA[《从系统调用到驱动回调：read() 如何映射到 chrdev_read()》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/153270148</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/153270148</guid><author>Yuosy</author><pubDate>Tue, 14 Oct 2025 18:23:01 +0800</pubDate><description><![CDATA[Linux字符设备驱动机制：用户态read()如何触发内核态回调 本文分析了Linux字符设备驱动中用户态系统调用与内核态驱动的映射机制。当用户程序执行read(fd,buf,size)时，内核通过以下路径完成调用： read()系统调用入口 根据fd查找file对象 通过file-&gt;f_op获取驱动操作函数集指针 调用file_operations结构体中注册的read回调函数 最终执行驱动自定义的chrdev_read()实现 关键点在于file_operations结构体建立了用户操作与驱动函数]]></description><category></category></item><item><title><![CDATA[《基于Qt的车载系统项目》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/152044056</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/152044056</guid><author>Yuosy</author><pubDate>Wed, 24 Sep 2025 17:52:10 +0800</pubDate><description><![CDATA[本文介绍了一个基于Qt开发的车载系统项目，包含五个核心功能模块：时间显示、音乐播放、视频播放、天气显示和地图显示。项目采用多界面跳转设计，通过信号槽机制实现主界面与子界面的切换。时间模块利用定时器每秒刷新显示；音视频播放模块支持播放列表管理、音量调节和进度控制，视频播放还提供点击列表切换功能；音乐播放额外支持播放模式切换。系统整体框架清晰，核心功能实现简洁高效，适合作为车载信息娱乐系统的开发参考。]]></description><category></category></item><item><title><![CDATA[《基于stm32的智慧家居基础项目》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/151230319</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/151230319</guid><author>Yuosy</author><pubDate>Fri, 05 Sep 2025 20:27:06 +0800</pubDate><description><![CDATA[开发文档：OneNet开发文档。]]></description><category></category></item><item><title><![CDATA[《TCP多线程通信代码C语言开发流程解析》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/150639434</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/150639434</guid><author>Yuosy</author><pubDate>Sat, 23 Aug 2025 12:42:35 +0800</pubDate><description><![CDATA[本文系统讲解了基于 TCP 多线程通信 的服务端与客户端实现流程。服务端通过主线程接收客户端连接，为每个客户端创建独立会话线程，并在会话线程中启动读写子线程处理消息收发；客户端通过 connect 与服务端建立连接，同样使用子线程进行读写操作。文章重点解析了 文件描述符的作用（作为客户端连接的通信通道）、线程管理及资源释放流程，并通过完整示例代码展示了从初始化、连接、数据传输到关闭的完整实现。整体思路可以概括为：主线程接收连接 → 会话线程管理客户端 → 子线程处理读写，帮助读者对 TCP 网络编程流程建立]]></description><category></category></item><item><title><![CDATA[《Qt————Mysql连接》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/150276742</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/150276742</guid><author>Yuosy</author><pubDate>Tue, 12 Aug 2025 17:28:18 +0800</pubDate><description><![CDATA[本文详细介绍了如何使用 Qt 连接 MySQL 数据库，并实现对数据库表的插入与查询操作。内容涵盖数据库和数据表的创建、Qt 工程配置、MySQL 驱动安装及关键代码实现。通过本示例，读者能够掌握 Qt 操作 MySQL 数据库的基本流程，为后续复杂的数据库管理和应用开发打下坚实基础。]]></description><category></category></item><item><title><![CDATA[《Qt————Tcp通讯》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/150150525</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/150150525</guid><author>Yuosy</author><pubDate>Sun, 10 Aug 2025 17:25:32 +0800</pubDate><description><![CDATA[只用在ui界面加一个lineEdit，用于存放客户端发送的数据。1.由于函数结束局部变量会被释放，我们需要在堆上创建元素。在客户端连接成功后，隐藏连接界面。]]></description><category></category></item><item><title><![CDATA[《Qt————Tcp连接》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148866977</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148866977</guid><author>Yuosy</author><pubDate>Tue, 24 Jun 2025 14:53:49 +0800</pubDate><description><![CDATA[本文介绍了使用 Qt 实现基于 TCP 协议的客户端和服务端连接。

在客户端部分，首先通过 Qt Designer 设计图形界面，包括 IP 和端口输入框、连接按钮和取消按钮。项目中添加了 network 模块，并在代码中引入 QTcpSocket、QHostAddress、QMessageBox 等头文件。在构造函数中初始化 QTcpSocket 对象。取消按钮用于关闭窗口，连接按钮则读取输入的 IP 和端口，通过 connectToHost() 方法连接服务端，并利用信号槽机制提示连接是否成功。

服]]></description><category></category></item><item><title><![CDATA[《Qt————文件操作》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148828739</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148828739</guid><author>Yuosy</author><pubDate>Sun, 22 Jun 2025 16:10:51 +0800</pubDate><description><![CDATA[本项目基于 Qt 框架，使用 QMainWindow 创建了一个简易的文本编辑器，具备基本的文件操作功能，包括新建、打开、保存，并支持 Ctrl+S 快捷键保存操作。

主要功能如下：

新建功能通过清空文本编辑框，并设置窗口标题为“新建文本文档.txt”实现；

打开功能使用 QFileDialog 获取用户选择的文件路径，并通过 QFile 读取文件内容，显示在 QTextEdit 中；

保存功能使用 QFileDialog 获取保存路径，通过 QFile 将 QTextEdit 中的文本内容以 UT]]></description><category></category></item><item><title><![CDATA[《Qt 定时器——QObject and QTimer》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148810955</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148810955</guid><author>Yuosy</author><pubDate>Sat, 21 Jun 2025 17:49:23 +0800</pubDate><description><![CDATA[本文通过实现一个定时刷新图片的功能，对 Qt 中两种定时器机制——QObject::startTimer() 与 QTimer 的使用方式进行了详细对比。首先使用 QObject 的定时器，通过重写 timerEvent() 函数实现定时切换图片；随后使用 QTimer，通过 connect() 信号与槽机制，实现相同的图片轮播效果。两种方法分别在初始化、触发机制、资源管理和代码结构上有所区别。文章最后对两者的使用特点进行了总结，帮助读者理解 Qt 定时器的不同实现方式以及在实际项目中的应用选择。]]></description><category></category></item><item><title><![CDATA[《Docker安装一气呵成》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148697977</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148697977</guid><author>Yuosy</author><pubDate>Mon, 16 Jun 2025 18:47:30 +0800</pubDate><description><![CDATA[Docker安装指南：记录了完整的Docker安装流程，解决常见的安装问题。首先安装必要依赖，然后导入Docker官方GPG密钥（通过阿里云镜像），配置阿里云Docker源，更新软件包索引后安装Docker引擎及相关组件。最后可通过docker version命令验证安装成功。该流程解决了网络代理和依赖问题，适用于Ubuntu/Debian系统。]]></description><category></category></item><item><title><![CDATA[《Qt——计算器》]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148690778</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148690778</guid><author>Yuosy</author><pubDate>Mon, 16 Jun 2025 14:31:51 +0800</pubDate><description><![CDATA[本文介绍了使用Qt框架实现计算器功能的主要步骤。1) 准备工作包括新建Widget项目和UI设计；2) 数字和符号功能通过字符串处理和信号槽机制实现；3) 清空功能使用clear()方法；4) 删除功能借助chop()函数实现；5) 核心运算功能采用栈结构处理表达式，包括优先级判断和括号处理。整个实现过程展示了Qt的信号槽机制和基本数据结构在GUI开发中的应用，最终完成了一个支持四则运算和括号的计算器。]]></description><category></category></item><item><title><![CDATA[《Qt 简介 + 安装 + 第一个小程序》一条龙教程]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148592152</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148592152</guid><author>Yuosy</author><pubDate>Wed, 11 Jun 2025 19:11:29 +0800</pubDate><description><![CDATA[Qt 是一个跨平台的 C++ 开发框架，主要用来做图形界面应用，也能做后台程序。它有很多模块，比如做界面、网络、数据库、多媒体等。你可以用 Qt Creator 来写代码、设计界面。

安装很简单，Linux 下几条命令就搞定。写第一个程序时，用 Designer 拖按钮，然后写槽函数实现功能，比如点击执行命令、取消操作、回车触发等，主要靠信号和槽来连接界面和逻辑。上手快，功能强，适合做各种桌面或嵌入式应用。
]]></description><category></category></item><item><title><![CDATA[C/C++————多态]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148290998</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148290998</guid><author>Yuosy</author><pubDate>Wed, 28 May 2025 20:15:17 +0800</pubDate><description><![CDATA[本文系统讲解了 C++ 中的多态机制，涵盖静态多态与动态多态的区别、实现方式（如虚函数、函数重载、模板等），以及多态在实际开发中的应用场景。通过示例代码演示了多态如何提高代码复用性、可扩展性与模块化能力，并进一步分析了虚函数表（vtable）背后的底层原理。文章适合初学者建立面向对象编程的系统认知。]]></description><category></category></item><item><title><![CDATA[C/C++————继承]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148263642</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148263642</guid><author>Yuosy</author><pubDate>Tue, 27 May 2025 19:46:57 +0800</pubDate><description><![CDATA[本文系统讲解了 C++ 中的继承机制，包括继承的基本语法、访问控制（public/protected/private 继承）、构造和析构的执行顺序、同名成员的处理、以及菱形继承及虚继承的问题与解决方案。通过多个实例和图示，帮助读者理解继承在代码复用、结构设计中的实际意义。适合正在学习 C++ 面向对象编程的初学者]]></description><category></category></item><item><title><![CDATA[C/C++ ———— 运算符重载]]></title><link>https://blog.youkuaiyun.com/Yuosy/article/details/148229201</link><guid>https://blog.youkuaiyun.com/Yuosy/article/details/148229201</guid><author>Yuosy</author><pubDate>Mon, 26 May 2025 14:30:46 +0800</pubDate><description><![CDATA[学会 C++ 运算符重载，让你的类像 int 一样丝滑！本文通过实用例子讲解如何正确重载比较运算符，避免常见坑，提高代码优雅度。
你是否曾经在类对象之间比较时遇到报错？为什么 p1 == p2 编译不过？运算符重载能完美解决这些问题。本文手把手教你重载 C++ 运算符，写出更自然、简洁、专业的代码]]></description><category></category></item></channel></rss>