关于对(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来判定对应的优先级是否已经使用。
文章评论(0条评论)
登录后参与讨论