#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char* TaskHandle_t;
void getmemory(TaskHandle_t *p)
{
*p = (char *) malloc(100);
strcpy(*p,"www.zhiguoxin.cn");
printf("*p:%s &(*p):0x%x\r\n",*p,&(*p));
}
int main()
{
TaskHandle_t str;
getmemory(&str);
printf("str:%s &str:0x%x\r\n",str,&str);
free(str);
return 0;
}
没啥大不了的,就是就是给char*起了一个别名而已,让下面的代码看起来更加顺畅一写。
这样对比一下是不是很清楚了呢?这样一来我们创建任务时候这个任务句柄就保存的是我们TCB控制块这个结构体的首地址了,知道了一个任务的TCB控制块首地址的话,那么这个任务的所有信息我是不是都知道了。是的,就是这么奇妙。通过指针的指针,二级指针来转换一下。
原文作者:果果小师弟
原文标题:FreeRTOS中的任务句柄到底是什么意思?
原文链接:https://mp.weixin.qq.com/s/jK2P_W5KgY1e6fOXWH-nCQ