其他分享
首页 > 其他分享> > FreeRTOS的heap5.c

FreeRTOS的heap5.c

作者:互联网

heap5 与heap4 比较相似,也是实现了malloc和free,同时也可以进行碎片合并。有的区别是heap5 可以有多个堆区,static void prvHeapInit( void ) 被换成void vPortDefineHeapRegions( const HeapRegion_t * const pxHeapRegions )这个函数。结构体HeapRegion_t(portable.h)如下:
const HeapRegion_t * const pxHeapRegions 结构体如下定义(portable.h):
/* Used by heap_5.c. */
typedef struct HeapRegion
{
uint8_t *pucStartAddress;
size_t xSizeInBytes;
} HeapRegion_t;

该函数前面有一段注释大概意思是:vPortDefineHeapRegions 一定要在使用pvPortMalloc之前使用,进行初始化栈区。创建任务,信号量,互斥锁,软件定时器,事件组等都调用pvPortMalloc。所以这个需要注意

标签:const,heap5,FreeRTOS,void,HeapRegion,vPortDefineHeapRegions,portable
来源: https://blog.csdn.net/weixin_43704402/article/details/112574205