原创 关于对(OS_TCB *)0的理解

2011-6-5 23:05 4960 6 6 分类: MCU/ 嵌入式

关于对(OS_TCB *)0是否是指向空的任务块的理解:

  (OS_TCB *)0虽然可以看成指向了一个起始地址为0的任务块,但是实际一块只是作为一个标志。如果您对链表等数据结构有一些接触的话会更容易理解。在内核有关TCB构成的链表中,用(OS_TCB *)0指向该链表已经到达尾部,或者链表为空。

    同样的,(OS_TCB *)1,也是作为一个标志。这个值,我想在内核中应该是用在OSPrioTable[]相关的操作代码中。将OSPrioTable[ X] 置为(OS_TCB *)1,这样就表明该任务优先级已经被占用。因为其它的代码是通过检查OSPrioTable[x] 是否等于(OS_TCB *)0来判定对应的优先级是否已经使用。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /3 下一条