|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
求助一个UC/OS-II源代码的问题 |
作者:si2003 栏目:嵌入式系统 |
不知大家能否知道UC/OS-II中的这段代码的意思:在os_task.c中。 OS_ENTER_CRITICAL(); if (OSTCBPrioTbl[prio] == (OS_TCB *)0) { /* Make sure task doesn't already exist at this priority */ OSTCBPrioTbl[prio] = (OS_TCB *)1; /* Reserve the priority to prevent others from doing ... */ /* ... the same thing until task is created. */ OS_EXIT_CRITICAL(); 我搞不懂0和1 在此的意思。谢谢! |
2楼: | >>参与讨论 |
作者: 漠然cool 于 2005/11/26 18:53:00 发布:
我是这么理解的 应该是在判断这个task有没有执行。(OS_TCB *)是在做强制类型转换。 我是这么理解的。不知道对不对,我也是刚刚开始看这个东西! |
3楼: | >>参与讨论 |
作者: nkguodalu 于 2005/11/26 20:53:00 发布:
优先级 在建立一个任务时先判断赋给这个任务的优先级有没有被占用, OSTCBPrioTbl[prio]为非空指针,说明已经存在这个优先级的任务了。 空指针的话才可以建立。 |
4楼: | >>参与讨论 |
作者: luofl 于 2005/11/28 11:31:00 发布:
nkguodalu说的是正确的 nkguodalu说的是正确的,uc/os-II不支持一个优先级具有多个任务.用0和1来确保一个任务只有一个不同的优先级. |
5楼: | >>参与讨论 |
作者: tjjkzhy 于 2005/11/28 21:03:00 发布:
确实如此,我刚刚平移完uc,也得到楼上的结论。 确实如此,我刚刚平移完uc,也得到楼上的结论。 |
6楼: | >>参与讨论 |
作者: 漠然cool 于 2005/11/30 18:36:00 发布:
lijiele |
7楼: | >>参与讨论 |
作者: Sureal 于 2006/8/26 12:41:00 发布:
re 长见识了,谢谢 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |