
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
摘要 循环缓冲区是嵌入式系统中处理数据流问题的经典解决方案。它采用固定大小的数组和两个索引(head/tail)实现数据循环存储,具有O(1)操作复杂度、内存连续、无动态分配等优势。通过牺牲一个存储单元来区分空/满状态,实现了简单可靠的判断逻辑。文中给出了一个适合嵌入式的C++模板实现,包含push/pop等基本操作,并展示了其在串口中断处理中的典型应用场景。相比标准库容器,循环缓冲区在确定性、内

嵌入式C++自定义删除器实用指南 本文探讨了C++自定义删除器在嵌入式开发中的应用。核心价值在于:通过RAII机制安全管理各种资源(内存、文件句柄、硬件资源等),避免内存泄漏和资源管理错误。 主要内容包括: 使用场景:管理非new/delete资源(fclose/free/硬件释放等) 实现方式: 函数指针(简单但增加指针大小) 无状态函数对象(最优空间效率) 有状态删除器(需上下文时使用) sh

本文介绍了C++标准库中的std::unique_ptr在嵌入式开发中的应用价值。unique_ptr通过独占所有权机制实现零开销资源管理,其特点包括:明确所有权语义、极低运行时开销(通常与裸指针大小相同)、防止误拷贝、与RAII完美契合。文章详细讲解了基本用法、自定义删除器(需注意状态捕获带来的尺寸影响)、数组管理、多态注意事项,以及中断环境下的使用限制。特别强调了unique_ptr与标准容器

WSL2 + VS Code 远程开发简明指南 本文为嵌入式开发者提供 Windows 11 下 WSL2 和 VS Code 远程开发快速入门教程。主要内容包括:WSL2 一键安装方法(wsl --install)、基础 Linux 命令、VS Code 的 WSL 远程开发配置(安装 Remote - WSL 扩展后使用 code . 命令启动),以及远程 SSH 开发环境搭建(生成 SSH
摘要:Qt中的MVC、MVP与MVVM设计模式解析 本文系统分析了三种经典架构模式在Qt框架中的应用。MVC模式中,Model负责数据存储,View负责展示,Controller作为中介协调两者;MVP模式通过Presenter接管展示逻辑,使View更加被动;MVVM则利用数据绑定实现自动同步。文章详细比较了三种模式的优缺点,并着重探讨了它们在Qt中的具体实现方式,特别是Qt的Model/Vie

本文介绍了使用现代C++实现文件拷贝器的初始步骤。作者首先分析了核心需求,包括分块读写、错误处理、进度反馈和结果验证,并设计了简洁的FileCopier类接口。技术选型上采用了C++17的std::filesystem库、RAII风格的流对象和vector作为缓冲区,以及chrono库进行时间测量。文章详细讲解了基础框架搭建过程,包括构造函数设计、异常处理机制、文件存在性检查、二进制模式文件打开和

把当前任务从 Ready → Blocked,至少阻塞这么多个 tick。⚠️ 实时系统中不建议频繁创建 / 删除任务(碎片 + 不确定性)。如果在 host 模拟环境里看到 main 返回,各位可以在自己的上位机环境中试一下 😃。这就是后面互斥锁必须存在的根本原因。这就是 RTOS 和裸机。在“就绪态”的任务中,选。

本文介绍了Windows系统中静态库(.lib)和动态库(DLL)的核心概念与差异。静态链接将代码直接合并到可执行文件中,而动态链接则依赖运行时加载机制。文章详细解析了两种库文件的生成原理、使用场景及常见问题,包括动态库的导出机制、加载顺序、安全风险以及跨模块边界的使用注意事项。特别强调了DLL搜索顺序的安全隐患和DllMain中的loader lock问题,并给出了工程实践建议,如使用C风格AB

本文介绍了在Linux平台上编译OpenCV并集成FFmpeg视频解码支持的方法。

本文介绍了嵌入式开发中的交叉编译技术与CMake多目标构建方法。首先解释了交叉编译的基本概念,即在一个平台(主机)上编译能在另一个平台(目标)上运行的程序,并分析了其必要性。文章详细讲解了交叉编译工具链的组成和目标三元组的概念,指出了交叉编译面临的挑战。 第二部分聚焦CMake构建系统,阐述了其在嵌入式开发中的优势,包括跨平台支持、模块化设计和现代化特性等。重点介绍了如何编写Toolchain文件








