=============================== 博客点滴积累,部分话语和知识点来源于网络,感谢网络资源的提供者======
heap3的代码比较简单,它只是将c标准库的malloc free函数进行了简单的封装,添加了task切换的安全性,贴一下源代码,并没有什么可以说的
void *pvPortMalloc( size_t xWantedSize )
{
void *pvReturn;
vTaskSuspendAll();//挂起所有的task,禁止task切换
{
pvReturn = malloc( xWantedSize );
traceMALLOC( pvReturn, xWantedSize );
}
( void ) xTaskResumeAll();//唤醒所有task,允许task切换
#if( configUSE_MALLOC_FAILED_HOOK == 1 )
{
if( pvReturn == NULL )
{
extern void vApplicationMallocFailedHook( void );
vApplicationMallocFailedHook();
}
}
#endif
return pvReturn;
}
/*-----------------------------------------------------------*/
void vPortFree( void *pv )
{
if( pv )
{
vTaskSuspendAll();//挂起所有的task,禁止task切换
{
free( pv );
traceFREE( pv, 0 );
}
}( void ) xTaskResumeAll();//唤醒所有task,允许task切换
}