FreeRTOS --(4)内存管理 heap3
阅读原文时间:2023年07月11日阅读:1

转载自 https://blog.csdn.net/zhoutaopower/article/details/106677144

heap3 来说,是直接使用了 malloc 和 free 来直接替代自己的策略:

分配内存如下所示:

void *pvPortMalloc( size_t xWantedSize )
{
void *pvReturn;

vTaskSuspendAll();  
{  
    pvReturn = malloc( xWantedSize );  
    traceMALLOC( pvReturn, xWantedSize );  
}  
( void ) xTaskResumeAll();

#if( configUSE\_MALLOC\_FAILED\_HOOK == 1 )  
{  
    if( pvReturn == NULL )  
    {  
        extern void vApplicationMallocFailedHook( void );  
        vApplicationMallocFailedHook();  
    }  
}  
#endif

return pvReturn;  

}

释放内存如下所示:

void vPortFree( void *pv )
{
if( pv )
{
vTaskSuspendAll();
{
free( pv );
traceFREE( pv, 0 );
}
( void ) xTaskResumeAll();
}
}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章