打印

ucos_ii就绪表求解~~~

[复制链接]
908|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
OSRdyTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX;

ptcb->OSTCBY:获得任务就绪表中Y的序号,也就是第几个元素,也就是D5D4D3的值
ptcb->OSTCBX:获得任务就绪表中X的序号,也就是该元素的第几个位,也就是D2D1D0的值
那小弟就没办法理解了:"把就绪表的第M个元素的序号"&"~该元素的第N个位"由什么意义呢?恳请大神指教~~~


相关帖子

沙发
zhusizhan| | 2015-8-4 14:30 | 只看该作者
OSRdyTbl[]是任务准备就绪表
ptcb->OSTCBY是任务所在的组序号
ptcb->OSTCBBitX是任务所在的组内序号

假如任务ID为14,那么
ptcb->OSTCBY = 1;
ptcb->OSTCBBitX = 0x40;
再看
OSRdyTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX; 即
OSRdyTbl[1] &= ~0x40; 也就是说把任务ID为14的准备就绪位置0, 也就是告诉os任务ID14没有准备好

使用特权

评论回复
板凳
liuchang890811|  楼主 | 2015-8-4 14:50 | 只看该作者
大神:任务的ID为14,是不是代表任务的prio为14?
14=00001110  D5D4D3=001 D2D1D0=110
那么:ptcb->OSTCBY=1(代表Y的序号),  
       ptcb->OSTCBBitY(代表在映射表中相应的位置)=0000 0010=2
       ptcb->OSTCBX=3
       ptcb->OSTCBBitX=0000 1000=8
大神:是不是我哪里理解错了???恳请大神指教~~~
      

使用特权

评论回复
地板
zhusizhan| | 2015-8-5 14:29 | 只看该作者
liuchang890811 发表于 2015-8-4 14:50
大神:任务的ID为14,是不是代表任务的prio为14?
14=00001110  D5D4D3=001 D2D1D0=110
那么:ptcb->OSTCBY=1( ...

ptcb->OSTCBX = 3 ? D2D1D0 = 110, 这是6呀

使用特权

评论回复
5
liuchang890811|  楼主 | 2015-8-5 16:28 | 只看该作者
不是3位3位的嘛
D5D4D3代表ptcb->OSTCBY
D2D1D0代表ptcb->OSTCBX
是这个意思吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

87

帖子

0

粉丝