4572| 3
|
FreeRTOS内存管理 heap2的疑问 |
10金钱
最佳答案while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) )
{
pxPreviousBlock = pxBlock;
pxBlock = pxBlock->pxNextFreeBlock;
}
条件是:如果空闲块小于所需的大小 并且 下一个空闲块不为NULL
你只盯着( pxBlock->xBlockSize < xWantedSize )看,当然会认为永远困在死循环。
其实,因为没有合适的大小可以分配,( pxBlock->pxNextFreeBlock != NULL )实际上会在最后一个空闲块上变为FA ...
| ||
发表于 2018-8-2 16:40:19
|
显示全部楼层
| ||
发表于 2018-8-3 01:59:35
|
显示全部楼层
| ||
| ||
|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )
GMT+8, 2024-11-25 23:35
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网