zxj123

zxj123

0个粉丝

92

问答

0

专栏

0

资料

zxj123  发布于  2012-12-24 15:03:52
采纳率 0%
92个问答
2285

calling task 什么意思?

 
VxWorks 5.4 Programmer's Guide
Chapter 2 Basic OS
Section 2.3.4 Tasking Control
Subject Task Names and IDs
Page 26
"Most VxWorks task routines take a task ID as the argument specifying
a task. VxWorks uses a convention that a task ID of 0 (zero) always
implies the calling task."

“绝大多数与任务相关的VxWorks例程使用“task ID”参数来指定某一任务。
按照惯例VxWorks,task ID为0总是用来指定调用任务。”


如:函数taskPriorityGet()
extern STATUS taskPriorityGet (int tid, int *pPriority);
假设有任务A、B、C,任务ID分别是0x10000、0x20000、0x30000,
对应的优先级分别是100、200、300,则
int tidOfTaskC = 0x30000;

void test_taskPriorityGet()
{
int pri;
taskPriorityGet (tidOfTaskC, &pri);
printtf("Priority of task C is %d.\n", pri);
taskPriorityGet (0, &pri);
printtf("Priority of the calling task is %d.\n", pri);
}
如果上面函数在任务A的上下文中执行,则会打印
Priority of task C is 300.
Priority of the calling task is 100.
如果上面函数在任务A的上下文中执行,则会打印
Priority of task C is 300.
Priority of the calling task is 200.

其实对于这个问题的理解关键是要注意在多任务环境中,同一个函数是有可能
被多个任务所调用的(在不同的上下文环境中执行),如:
void task_A_entry()
{
test_taskPriorityGet();
}

void task_B_entry()
{
test_taskPriorityGet();
}
task_A_entry、task_B_entry分别是任务A、B的入口函数。
我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区