- 博客(123)
- 收藏
- 关注
原创 【核心项目】基于嵌入式Linux的智能安防监控系统
本文介绍了一个基于嵌入式Linux的智能安防监控系统,包含摄像头终端和QT客户端两部分。摄像头终端基于RV1106平台,实现视频采集、H264编码、RTSP传输、AI目标检测及自动追踪功能;QT客户端基于C++ QT框架,支持多路视频解码、远程控制和异常存储。系统采用模块化设计,运用工厂模式和观察者模式实现解耦,并通过无锁环形队列优化性能。项目代码已开源,支持跨平台部署,适用于智能安防监控场景。
2025-10-20 09:31:59
1389
原创 【C++ QT项目5】——基于HTTP与JSON数据流的天气预报界面设计
设计一个天气预报界面,实现对不同城市区域的天气获取与显示,其中主要涉及stylesheet界面美化、HTTP通信、JSON数据解析自定义控件绘制温度多控件及其最终代码整合调试能力。
2024-02-25 21:05:48
1925
原创 【C++ QT项目4】——QPainter实现模拟雷达与汽车仪表盘
通过QPainter了解画家类并熟悉各种常见形状的绘制、各种类型的渐变处理以及坐标转移与旋转的具体应用,最后通过设计模拟雷达与汽车仪表盘巩固QPainter类的实际应用。
2024-02-21 19:11:58
1939
原创 【毕设】智慧园区(家居)系统调试
该项目作为本人本科阶段毕设项目,同时也是2023年国家级大创优秀项目,这里主要介绍了对于系统的调试方法,供实验室同学参考学习与调试指导,同时提供了一个学习内容与路线,仅供参考。
2023-06-18 15:58:56
1282
2
原创 【内存池】动态内存分配机制
本文设计了一种基于内存池的动态内存分配机制,专为嵌入式/实时系统设计,解决了标准库malloc/free存在的分配时间不确定、内存碎片和堆溢出问题。通过定义堆区结构体实现内存管理接口,采用对齐内存块和空闲链表进行内存组织。关键实现包括:1)初始化时对齐内存并建立头尾哨兵节点;2)malloc时调整大小、对齐内存,遍历空闲链表寻找合适块并进行分割处理;3)维护剩余内存统计信息。该机制通过预分配内存池和块分割策略,确保内存分配的确定性和高效性,适用于资源受限的嵌入式系统。
2025-10-24 19:45:12
1101
原创 【线程池】线程池搭建任务设计
本文介绍了一个线程池框架的实现方案。系统采用生产者-消费者模型,支持任务提交与结果返回。核心设计包括:1) 使用Any类实现任意类型参数传递,通过模板和多态机制封装数据;2) Result类处理任务结果,内部包含信号量实现同步;3) 支持cached模式弹性扩容,当任务队列积压时自动创建新线程,空闲超时则回收线程资源。线程池通过条件变量协调任务队列操作,确保线程安全。该框架实现了高效的任务调度与资源管理,适用于高并发场景。
2025-10-20 09:24:09
787
原创 【线程池】多线程编程与线程池基础概念
本文系统介绍了多线程编程与线程池的核心概念。主要内容包括:线程池相关概念与优势,线程池的核心参数和两种模式;阐述了并行与并发的区别、IO/CPU密集型任务的特点及线程数设置原则;分析了线程消耗与上下文切换问题;讲解了线程同步互斥机制和通信方式,并比较了互斥锁与信号量的区别。
2025-10-20 09:23:14
1004
原创 【无锁队列】环形缓冲区与无锁队列
环形缓冲区RingBuffer是一种固定大小、头尾相连的循环数据结构,通过头尾指针实现空间复用,避免内存碎片。其优势在于内存连续、读写高效,适合生产者-消费者模型。判断缓冲区满/空可通过预留空位、计数器或标志位实现。单生产者单消费者场景下可通过原子操作实现无锁线程安全,多线程场景则需加锁或CAS同步。RingBuffer广泛应用于传感器数据、音视频处理等场景,但存在固定大小易溢出的缺点。无锁实现通过原子操作避免mutex性能开销,提升高并发下的执行效率。
2025-10-12 16:31:33
1193
原创 【C++11新特性】智能指针,右值引用,移动语义与完美转发,函数对象...
总理总结C++11面试重要新特性,自动类型推导auto、智能指针、右值引用、移动语义与完美转发、类型转化等重要内容
2025-08-09 10:31:19
5084
原创 【设计模式】观察者模式
摘要: 观察者模式是一种高频使用的设计模式,通过一对多的订阅机制实现对象间的联动,当发布者状态改变时自动通知所有订阅者。该模式适用于消息更新、广播等场景。文章详细解析了模式结构:发布者基类管理订阅者的添加、删除和通知,子类重写通知逻辑;观察者基类处理绑定、解绑和更新消息,子类实现具体更新操作。通过C++代码示例展示了发布者与观察者的实现,并提供了测试案例验证模式功能。
2025-06-16 09:51:36
5342
原创 【设计模式】单例模式
本内容简要介绍设计模式中的单例模式概念与基础应用,单例模式的分类,饿汉式与懒汉式,以及懒汉式的线程安全问题与解决,最后设计一个典型单例模式的应用-任务队列。
2025-06-14 16:54:30
5791
原创 【设计模式】UML类图与工厂模式
本文介绍了UML类图的基本语法和工厂设计模式。文章详细讲解了两种工厂模式:简单工厂模式与工厂模式,分别介绍了其特点、创建过程,给出UML类图与简单案例的程序设计。
2025-06-13 17:59:37
5559
原创 【二叉树】(四)二叉搜索树的基础修改构造及属性求解1
整理总结记录代码随想录学习过程及配套力扣习题解析,利用有序树的特征,引入核心三大思路:中序递归遍历存数组(有序),中序递归遍历与双指针,迭代法结合双指针遍历,同时如果涉及到树的数值、大小,要抓住二叉搜索树的特征以及中序遍历的有序性。
2025-06-13 17:47:25
4464
原创 Git入门
该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件。执行完命令之后在用户目录下会生成一个.ssh文件夹,SSH公钥 在id_rsa.pub文件里面。在目标文件夹下,右键打开Git Bash Here,进入文件夹。1、下载安装好git之后在cmd绑定账号和邮箱。2、生成SSH公钥 (执行以下命令一直点回车)添加完之后就可以提交和拉取代码了。3、在git账号添加SSH公钥。5. 推送代码到git仓库。3. 添加文件到缓存区。
2025-06-01 13:44:13
4237
原创 【操作系统】进程间通信方式
整理总结操作系统学习笔记——进程间的通信方式(管道、消息队列、共享内存、信号量以及socket),每种通信方式的优缺点及应用场景
2025-03-20 20:18:37
1316
原创 【操作系统】设备管理
整理总结操作系统设备管理相关理论内容,包括设备管理器、I/O控制方式,设备驱动程序,通用块层,存储系统I/O软件分层以及键盘敲入后期间发生的流程
2025-03-07 21:07:36
1088
原创 【操作系统】文件系统
整理总结操作系统的文件系统,包括文件系统的基本组成,虚拟文件系统,文件的存储与空闲空间管理,文件系统的结构,目录的存储,软硬件与硬链接,文件I/O等内容。
2025-03-07 21:06:54
1297
原创 【回溯算法】回溯的组合与排列问题
整理总结回溯算法中的组合与排列问题,其中核心在于了解回溯算法的思想与模板,熟悉组合与排序问题及剪枝优化,组合排序的去重问题是关键
2024-10-30 20:47:35
1469
原创 【ARM】(三)ARM指令集与汇编基础
本文整理总结了ARM指令集基础与相关的汇编基础,其中包括ARM指令集的概述,对ARM指令做了详细的展开介绍,包括通用类型的数据处理指令、跳转指令、数据读写指令,以及ARM特有的状态寄存器传送指令、软中断与协处理器,同时涉ARM伪指令与为操作以及与C的混合编程
2024-10-28 20:25:10
1885
原创 【图论】(五)最短路径算法(D / BF / SPFA / F / A*)
本文主要整理了相关最短路径算法,主要包括BF相关的一些列算法,包括基础BF算法,BF的队列优化(SPFA算法),BF的负价环问题以及单源点的有限最短路径问题,通过通过F算法解决多源点问题,以及启发式搜索的A*算法。
2024-10-23 19:23:39
1522
原创 【图论】(四)最小生成树与拓扑排序
整理总结图论中的最短路径问题基础算法,包括求最小生成树(P算法与K算法),求拓扑排序,求最短路径的D算法及其通过优先级队列(小顶堆)优化。
2024-10-23 19:22:37
1046
原创 【ARM】(二)ARM寄存器组织与异常处理
本文整理总结了ARM寄存器组织,ARM异常处理,包括异常的概念、异常的响与异常返回,核心在于异常的处理过程与异常的相关概念
2024-10-17 20:52:26
982
原创 【ARM】(一)计算机基础与ARM处理器概述
本文整理总结计算机基础知识,包括计算机组成、存储结构与地址空间、CPU工作原理。接着详细讲解了ARM处理器、指令集、存储模型和工作模式。
2024-10-17 20:51:27
1734
原创 【操作系统】多线程的同步与互斥
整理总结操作系统多线程同步与互斥的相关理论知识,包括同步与互斥的概念,同步互斥的原子实现与使用,以及经典同步问题哲学家就餐问题与读者-写者问题。
2024-10-17 10:20:59
1421
原创 【图论】(二)图论基础与路径问题
整理总结图的常用两种构造方式,并通过所有可达路径来巩固图的构造,同时涉及有向图的应用,如字符串接龙,有向图的完全可达性,此两题较难。
2024-10-10 15:43:41
1250
原创 【图论】(一)图论理论基础与岛屿问题
本文整理总结了图论相关理论基础知识,对比总结了深度搜索与广度搜索的区别与模板代码,整理图论中岛屿问题的一类题目,包括岛屿的数量与面积、孤岛的面积,沉没孤岛、建造最大人工岛等问题,同时通过水流问题体现岛屿问题在实际中的应用。
2024-10-10 15:38:41
1541
原创 【Linux】基于驱动框架的程序编写测试
本文整理总结了Linux字符设备驱动的工作原理,介绍了Linux字符设备驱动的程序框架与设计流程,最后实现对框架程序的编译并移植到树莓派硬件平台测试。
2024-09-29 20:31:09
1143
原创 【Linux】Linux内核结构基础
本文介绍了Linux内核的组成结构与架构,同时重点解释了用户态的系统调用(如 open函数)在打通上层和底层硬件过程中的作用,以及Shell脚本的基础运用
2024-09-29 20:30:10
3339
原创 【单调栈】单调栈基础及经典案例
整理总结单调栈的理论基础,包括应用场景、单调栈的作用、顺序以及常用变量,通过每日温度、下一个更大元素巩固单调栈,同时引入单调栈的一类经典应用场景,接雨水和柱状图中最大的矩形面积
2024-09-27 19:36:26
2532
1
原创 【动态规划】(五)动态规划——子序列问题
整理总结动态规划中的子序列问题,其中主要包括连续与不连续的子序列、编辑问题及其回文串,关键在于dp数组的定义及其删除操作后的递推公式,回文串问题核心在于dp数组的及其遍历顺序。
2024-09-24 20:02:57
876
原创 【动态规划】(二)动态规划——0-1背包问题
整理总结动态规划中的01背包理论基础,对比总结一维和二维数组的定义、初始化及其遍历顺序,引入01背包的应用场景,包括能否装满背包、背包最多能装多少、装满背包有几张方法,装满背包最多有多少个物品等。
2024-09-21 21:07:19
15110
4
原创 Linux内核编译并移植至树莓派
本文详细介绍了如何配置和编译树莓派的Linux内核,包括使用厂家.config、makemenuconfig进行配置,以及内核编译的步骤。讲解了配置过程中涉及的命令行参数,驱动加载方式,以及编译后的检查和验证。同时,还涵盖了将新内核安装到SD卡的过程,包括挂载、模块安装、镜像更新,拷贝相关文件并最终将Linux内核移植至树莓派ARM平台。
2024-09-14 22:05:37
2455
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅