Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mg — 面向嵌入式系统的内存管理组件

在嵌入式系统中,很难找到一个真正“可用”的通用内存分配器。 现有方案通常存在以下问题:

  • 太大(TLSF、dlmalloc)
  • 太弱(FreeRTOS heap_x 功能有限)
  • 太不可控(碎片严重、查找慢)
  • 太专用(只能应对单一模式)

mg 的存在,就是为了提供一组小型、可预测、适合 MCU 约束的内存分配器。

用途

mg 提供多种分配器,覆盖嵌入式系统的典型内存使用模式:

  • 动态堆分配(通用场景)
  • best‑fit 堆(提高大块分配成功率)
  • 固定块内存池(O(1) 小对象分配)
  • 固定对象池(稳定、无碎片的对象缓存)
  • 区域分配器(编译器/短生命周期对象)

一句话:mg 给嵌入式系统补上了它们本该拥有的内存分配工具:轻量、可控、针对真实工作负载设计。

资源消耗

  • 占用极小:纯 C、零依赖
  • RAM 使用可控:只占用你配置的池/堆
  • 无锁:适用于单核 MCU
  • 8 字节对齐
  • 适合只有几 KB 内存的设备

mg 可以直接嵌入任何 MCU / RTOS / 裸机项目,不带来额外负担。

包含组件

mg 包含多个可独立使用的分配器:

  • heap — 类 SLOB 链表堆,可选泄漏检测
  • memalloc — 红黑树 + 链表的 best‑fit 堆
  • membit — 基于 32 位 bitmask 的固定块内存池
  • mempool — 固定对象池,O(1) 分配
  • mg_region — pool/bump 区域分配器(短生命周期内存)

所有模块均为独立组件,可按需选择使用。

使用手册

使用手册

About

A portable, zero‑dependency memory allocator.

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages