- 博客(14)
- 收藏
- 关注
原创 C 语言实战:基于红黑树的 malloc/free/realloc 内存管理实现(附完整源码)
本文提出了一种基于红黑树和双向链表的高效内存管理方案。该方案通过红黑树实现O(logn)级别的内存分配和释放,结合双向链表降低红黑树调整开销。内存块采用8字节对齐,支持最佳适配策略和即时合并机制,适用于嵌入式系统等场景。测试表明,相比标准库malloc,该方案碎片率仅2-5%,内存利用率更高,在小块频繁分配场景下性能提升25%。实现包括初始化、分配、释放、重分配等完整功能,提供线程安全接口,具有较好的移植性和稳定性。
2025-12-23 21:57:56
5655
原创 嵌入式单片机动态内存管理方案实现
本文提出了一种基于红黑树和双向链表的高效动态内存管理方案,专为单片机等嵌入式系统设计。该方案采用最佳适配策略,实现了O(logn)时间复杂度的内存分配与释放操作,同时支持内存对齐、块合并、线程安全等特性。通过自定义内存池管理,系统有效提高了内存利用率,减少碎片化,并提供了malloc/free/realloc等标准接口。测试表明,该方案在性能上优于标准库实现,尤其适合资源受限的嵌入式环境。核心创新点在于结合红黑树快速查找和链表高效管理的优势,在保证实时性的同时优化了内存使用效率。
2025-11-05 16:26:28
9790
原创 MQTT3.1.1协议总结
连接标志位:{登录账号设置(位7) , 登录密码设置(位6),遗嘱保留功能开启设置(位5),遗嘱消息服务等级设置(位4和位3),遗嘱功能开启设置(位2),清理会话功能开启设置(位1),保留位(位0)}(一字节);遗嘱功能:用于报警,非正常断线(不用断开连接指令,直接断开TCP、时间超时或者其他原因)时,服务器会向订阅了遗嘱TOPIC的客户端推送遗嘱报文,位2是开启遗嘱功能的开关,位5是保存发送遗嘱消息功能使断线后新的设备连接后依然能收都消息,位4和位3共同表示服务质量等级的报文遗嘱消息。
2025-07-20 23:18:01
469
原创 嵌入式单片机内存池C语言代码实现
Chain_Management.h文件实现。Chain_Management.c文件实现。Test.c测试文件实现。
2025-01-08 10:11:37
589
原创 STM32 单片机 malloc 怎么用,手动实现malloc函数全部功能(首次适配策略)
本文介绍了一种专为嵌入式系统设计的轻量级动态内存管理方案。该方案采用位图法管理内存池,支持1KB-64KB的内存空间管理,具有以下特点:1)提供内存申请(My_malloc)和释放(My_free)功能;2)释放时可自动合并相邻内存块;3)支持可配置的内存对齐功能(OFFSET_BYTE宏定义);4)完全独立实现,不依赖任何库函数;5)针对小内存分配进行了优化。实现包含Memory.h和Memory.c两个文件,使用时需先通过Init_Malloc初始化内存池。该方案通过位图标记内存状态,适合小内存快速分配
2024-11-21 11:37:01
714
原创 C语言内存管理
用C语言简单制作一个内存管理操作,可以管理指定区间的内存但还是有点不完善有能力的朋友可以指点我改进。3、可以合并相邻的内存区块;2、最大支持32位内存管理;2、支持内存的申请与释放;1、简易的内存管理;
2024-11-08 21:01:26
388
原创 C语言字符串函数<string.h>文件实现
该代码实现了一个完整的字符串处理库String.h,包含25个常用字符串操作函数。主要功能包括:基础操作(字符串长度计算、复制、连接、比较),类型转换(整型/浮点数转字符串、字符串转整型),高级字符串处理(KMP模式匹配算法、字符串反转、动态内存分配),以及可选片段复制等实用功能。其中KMP算法实现了正向/反向匹配、统计匹配次数等功能。所有函数均采用标准C实现,不依赖外部库,具有高效性和可移植性,适用于嵌入式系统等资源受限环境。
2024-10-13 16:02:11
394
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅