FreeRTOS 源码注释(prvAllocateTCBAndStack)
来源:互联网 发布:苹果软件下载排行 编辑:程序博客网 时间:2024/05/17 06:51
/* 为 TCB 和 堆栈分配内存空间,被 xTaskGenericCreate 调用*/
static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer )
{
tskTCB *pxNewTCB;
/* 首先分配 TCB 结构的内存空间 */
pxNewTCB = ( tskTCB * ) pvPortMalloc( sizeof( tskTCB ) );
if( pxNewTCB != NULL )
{
/* 分配堆栈空间,有内存对齐要求 */
pxNewTCB->pxStack = ( portSTACK_TYPE * ) pvPortMallocAligned( ( ( ( size_t )usStackDepth ) * sizeof( portSTACK_TYPE ) ), puxStackBuffer );
if( pxNewTCB->pxStack == NULL )
{
/* 如果堆栈空间没有分配成功. 则删除 TCB 空间. */
vPortFree( pxNewTCB );
pxNewTCB = NULL;
}
else
{
/* 将堆栈填满 0xa5,方便调试,之所以是0xa5,因为 0xa5 = 1010 0101 非常有特点 */
memset( pxNewTCB->pxStack, tskSTACK_FILL_BYTE, usStackDepth * sizeof( portSTACK_TYPE ) );
}
}
return pxNewTCB;
}
- FreeRTOS 源码注释(prvAllocateTCBAndStack)
- FreeRTOS 源码注释(xTaskGenericCreate)
- FreeRTOS 源码注释(vTaskDelete)
- FreeRTOS 源码注释(vTaskDelayUntil)
- FreeRTOS 源码注释(vTaskDelay)
- FreeRTOS 源码注释(vTaskSuspend)
- FreeRTOS 源码注释(prvInitialiseTCBVariables)
- FreeRTOS 源码注释(prvInitialiseTaskLists)
- FreeRTOS 源码注释(prvAddTaskToReadyQueue)
- FreeRTOS 源码注释(prvCheckTasksWaitingTermination)
- FreeRTOS 源码注释(prvIdleTask)
- FreeRTOS源码解析 -> vTaskResume()
- FreeRTOS 源码分析
- FreeRTOS源码解析 -> xTaskCreate()
- FreeRTOS源码解析 -> vTaskDelete()
- FreeRTOS源码解析 -> vTaskDelayUntil()
- FreeRTOS源码解析 -> vTaskSuspend
- FreeRTOS源码解析 -> vTaskStartScheduler()
- FreeRTOS 源码注释(vTaskDelay)
- 如何在win7下配置SNMP Server
- FreeRTOS 源码注释(vTaskSuspend)
- android上下文菜单Context Menu
- git实验之查询提交记录
- FreeRTOS 源码注释(prvAllocateTCBAndStack)
- LogCat中不输出任何的信息
- FreeRTOS 源码注释(prvInitialiseTCBVariables)
- git实验之代码撤消与回退
- JavaScript实现弹出“确定/取消”对话框的方法
- FreeRTOS 源码注释(prvInitialiseTaskLists)
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- FreeRTOS 源码注释(prvAddTaskToReadyQueue)
- FreeRTOS 源码注释(prvCheckTasksWaitingTermination)