ucos_ii就绪表求解~~~

[复制链接]
1179|4
 楼主| liuchang890811 发表于 2015-8-4 13:52 | 显示全部楼层 |阅读模式
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呀
 楼主| liuchang890811 发表于 2015-8-5 16:28 | 显示全部楼层
不是3位3位的嘛
D5D4D3代表ptcb->OSTCBY
D2D1D0代表ptcb->OSTCBX
是这个意思吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

87

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部