# tinyheap **Repository Path**: embed-systems/tinyheap ## Basic Information - **Project Name**: tinyheap - **Description**: tinyheap是一个用于嵌入式裸机系统的堆内存管理库。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-22 - **Last Updated**: 2025-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tinyheap `tinyheap`是一个用于嵌入式裸机系统的堆内存管理库。 `tinyheap`基于FreeRTOS的heap_5.c提供了`malloc()`和`free()`函数的实现。 您还可以找到其他有用的内存函数,例如`aligned_malloc()`。 ## 使用 1. 使用`malloc_addblock()`函数初始分配内存块: ```cpp void malloc_addblock(void* addr, size_t size); ``` **注**:可以使用`malloc_addblock()`添加多个内存块。内存块不必是连续的。 ```cpp // 从内存地址0x20020000开始分配4MB给堆 malloc_addblock(0x20020000, 4 * 1024 * 1024); ``` 2. 使用`malloc_init()`初始化堆内存管理库。 ```cpp void malloc_init(void); ``` 3. 使用`malloc()`和`free()`申请和释放动态内存 如果没有分配内存,`malloc()`和`free()`将失败(返回`NULL`)。 一旦内存被分配给堆,您就可以按预期使用`malloc()`和`free()`。 4. 你可以使用`aligned_malloc()`和`aligned_free()`来分配和释放对齐动态内存 ```cpp void * aligned_malloc(size_t align, size_t size); ``` 对齐必须是2的幂! 对齐内存只能使用`aligned_free()`释放: ``` void aligned_free(void* ptr); ```