五、FreeRTOS中任务控制块(TCB)、任务句柄和内核对象句柄

文章目录

  • 1、什么是任务控制块?
  • 2、任务控制块的内容
  • 3、什么是任务句柄?
  • 4、什么是内核对象句柄?

1、什么是任务控制块?

任务控制块实际上就是一个结构体。

在FreeRTOS中,系统为了顺利的调度任务,为每个任务都额外定义了一个任务控制块,这个任务控制块就相当于任务的身份证,里面存有任务的所有信息,比如任务的栈指针,任务名称,任务的形参等。
有了这个任务控制块之后,以后系统对任务的全部操作都可以通过这个任务控制块来实现。

2、任务控制块的内容

任务控制块最基本的内容如下(还有一些内容是根据一些宏定义来进行选择)
五、FreeRTOS中任务控制块(TCB)、任务句柄和内核对象句柄_第1张图片

从上图可知每个任务控制块都有一个栈底指针和栈顶指针,从而实现任务控制块包含对应任务的所有信息,而任务句柄指向的是对应的任务控制块,所有最终可以使用任务句柄来对任务进行控制。

五、FreeRTOS中任务控制块(TCB)、任务句柄和内核对象句柄_第2张图片

3、什么是任务句柄?

任务句柄是一个指针,用于指向一个任务,当任务创建好后,它就具有了一个任务句柄。

我们想要操作任务就得都需要通过这个任务句柄。
如果是自身的任务操作自己,那么这个句柄可以为NULL。

4、什么是内核对象句柄?

信号量,消息队列,事件标志组,软件定时器这些都属于内核的对象,要想使用这些内核对象,必须先创建,创建成功之后会返回一个相应的句柄。实际上就是一个指针。

你可能感兴趣的:(FreeRTOS,物联网,stm32)