RTOS
嵌入式系统OS
爱兔蛙
宁可慢,不要站
展开
-
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 结构体如下原创 2021-01-15 19:49:34 · 739 阅读 · 0 评论 -
FreeRTOS的heap4.c代码逐行分析
直入主题----->这个函数目的主要是在第一次调用malloc函数时,将根据字节对齐计算出可以应用的分配空间,并且初始化可用的链表结构!(下图盗用网络图片,画的很好)xBlockAllocatedBit变量说明:Heap_4用了BlockLink_t中xBlockSize的最高一位来标识某个内存块是否处于空闲状态,这样一来,每一个分配出去的内存块大小就有限制了。例如,我用的是STM32F103,size_t是定义为unsigned int类型的,32位,可支持到4G的内存空间。但是最高1位用来原创 2021-01-12 16:11:36 · 451 阅读 · 0 评论