μCOS-II

/*
*****************************
* uC/OS-II 学习ucosii                                            
* File    : OS_CORE.C
* By      : Jean J. Labrosse
* Version : V2.92.07
*****************************
*/

/*
OSOSRdyTbl[x] 任务就绪列表。μCOS-II规定,
每个就绪的任务,在任务就绪表中的对应位置为1,反之为0;
每个位对应一个任务优先级1就绪0休眠;8*8=64个;

OSOSRdyTbl[0]的bit7-bit0对应于优先级7-0,
OSOSRdyTbl[1]的bit7-bit0对应于优先级15-8,
OSOSRdyTbl[2]的bit7-bit0对应于优先级23-16,
OSOSRdyTbl[3]的bit7-bit0对应于优先级31-24,
OSOSRdyTbl[4]的bit7-bit0对应于优先级39-32,
OSOSRdyTbl[5]的bit7-bit0对应于优先级47-40,
OSOSRdyTbl[6]的bit7-bit0对应于优先级55-48,
OSOSRdyTbl[7]的bit7-bit0对应于优先级63-56,

OSRdyGrp “任务就绪组”。
int y = OSUnMapTbl[OSRdyGrp],找到最高优先级的列
确定了优先级的次低三位(bit5-bit3);也可以叫高三位;
int x = OSUnMapTbl[OSRdyTbl[y]],找到最高优先级的行
确定了优先级的低三位(bit2-bit0);也可以叫低三位;
00111111=63,6bits一共表示64个优先级;

将高三位左移3位,加上低三位,可得最高优先级;
OSPrioHighRdy = (INT8U)((y << 3u) + OSUnMapTbl[OSRdyTbl[y]]);

OSUnMapTbl[256] 的作用是,
枚举出2的8次方(8bits)中排列组合的情况下的最高优先级,
不用计算,直接查表获取最高优先级,保证最高效稳定的实时性。

*/

/*$PAGE*/
/*
*********************************************************************************************************
** 【issue 1】 总览所有全局变量和链表的关联
** 任务控制块TCB的定义 short for Task Control Block
** 每个任务在OS内核中是一个重要的内核对象,在内核中的体现是以这个tcb结构体形式。
** 主要对象是,任务堆栈,任务管理链表,任务消息处理关联的变量,任务调度算法关联的变量。20240609;
*********************************************************************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值