关于ucos-ii中 OSUnMapTbl[] 的理解
来源:互联网 发布:图片软件有哪些 编辑:程序博客网 时间:2024/04/29 20:12
先看OSUnMapTbl[]的原型!
OSUnMapTbl[256] = {
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F 我自己加的序号,好对应点 */
0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x00 to 0x0F */
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x10 to 0x1F */
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x20 to 0x2F */
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x30 to 0x3F */
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x40 to 0x4F */
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x50 to 0x5F */
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x60 to 0x6F */
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x70 to 0x7F */
7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x80 to 0x8F */
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x90 to 0x9F */
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xA0 to 0xAF */
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xB0 to 0xBF */
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xC0 to 0xCF */
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xD0 to 0xDF */
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xE0 to 0xEF */
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 /* 0xF0 to 0xFF */
};
其实这就是一个预先写好的表,是为了避免在系统运行时去计算而浪费过多的时间,所以只要通过简单的查表便可得到计算好的值!
主要是用来查 OSEventGrp 、OSEventTbl[] 、 OSRdyGrp 、OSRdyTbl[] 这几个值中最低位为1的是第几位!
这里用OSRdyTbl[] 来举例,假设OSRdyTbl[0]=0010 1010 (也就是十六进制的2A)查表的时候
OSUnMapTbl[ OSRdyTbl[0] ] =1 (表是从左往右查的!),得1是因为0010 1010中最低位为1的是第1位(注意这里有第0位!)!
再举1个例子,看看就知道规律了:
OSRdyTbl[0]=0000 1001 (也就是9,最低位为1的是第0位),所以查表OSUnMapTbl[9](OSUnMapTbl[]中的第九位(也是从0开始,这是数组,应该都懂的!))等于0 跟预想的一样。。。
OK,就写这么多。。。
- 关于ucos-ii中 OSUnMapTbl[] 的理解
- ucos学习笔记01---OSUnMapTbl的理解
- uC/OS-II中OSUnMapTbl[]的原理
- Ucos-II 数组OSUnMapTbl[]表中值是如何计算得来的?
- uCos中优先级判定表OSUnMapTbl原理
- uCos中优先级判定表OSUnMapTbl原理
- uCOS 中优先级判定表OSUnMapTbl原理
- ucos ii信号量的理解
- uC/OS-II中OSUnMapTbl数组的推导
- 学习uCOS-II过程中对OS_PRIO_SELF的理解
- 关于ucos-ii的移植
- uc/os-II之OSUnMapTbl[]简单理解
- ucos-ii 中OSTaskResume函数理解
- 解读uCos中优先级判定表OSUnMapTbl原理
- 解读uCos中优先级判定表OSUnMapTbl原理(转载)
- 解读uCos中优先级判定表OSUnMapTbl原理
- 解读uCos中优先级判定表OSUnMapTbl原理
- 解读uCos中优先级判定表OSUnMapTbl原理
- PHP日期与时间相关的函数
- HDU-3371(最小生成树综合)
- 在QQ通讯录,360之前拦截短信
- VB6.0数据库开发五个实例——罗列的总结
- STL中的迭代器的类型
- 关于ucos-ii中 OSUnMapTbl[] 的理解
- 《unix环境高级编程》中文版 翻译错误集
- 如何看懂源代码–(分析源代码方法)
- KMP算法详解
- 常用Oracle DBA 查询
- ruby的mac下使用
- java scanner扫描用法实例
- C++问题记录
- ubuntu安装软件