FreeRTOS 有哪 5 种内存管理方式?
- heap_1.c:这种方式简单地在编译时分配一块固定大小的内存,在整个运行期间不会进行内存的动态分配和释放。它适用于那些对内存使用需求非常明确且固定,不需要动态分配内存的场景,优点是实现简单,不会产生内存碎片,但缺乏灵活性,不能满足运行时动态分配内存的需求。
- heap_2.c:采用首次适配算法来分配内存。当有内存分配请求时,它会从内存块的起始位置开始查找,找到第一个足够大的空闲块来满足请求。在释放内存时,不会立即将相邻的空闲块合并,可能会导致内存碎片的产生,但相对 heap_1.c 来说,它支持动态内存分配,具有一定的灵活性,适用于那些内存分配和释放不太频繁,对内存碎片不太敏感的场景。
- heap_3.c:实际上是对标准 C 库的内存分配函数 malloc 和 free 的简单封装。它借助了标准 C 库的内存管理机制来实现 FreeRTOS 中的内存管理。这种方式的优点是可以利用标准 C 库成熟的内存管理算法,