⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000006.htm

📁 水木社区 embeded 版精华区 下载
💻 HTM
字号:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>Calling task 什么意思?                turbolinux </title></head><body><center><h1>BBS 水木清华站∶精华区</h1></center><a name="top"></a>发信人:&nbsp;nonsun&nbsp;(无晴),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;calling&nbsp;task&nbsp;什么意思?&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;May&nbsp;17&nbsp;17:05:41&nbsp;2001)&nbsp;<br />&nbsp;<br />呵呵,你的文字的出处:&nbsp;<br />&nbsp;<br />VxWorks&nbsp;5.4&nbsp;Programmer's&nbsp;Guide&nbsp;<br />Chapter&nbsp;2&nbsp;Basic&nbsp;OS&nbsp;<br />Section&nbsp;2.3.4&nbsp;Tasking&nbsp;Control&nbsp;<br />Subject&nbsp;Task&nbsp;Names&nbsp;and&nbsp;IDs&nbsp;<br />Page&nbsp;26&nbsp;<br />&nbsp;<br />&quot;Most&nbsp;VxWorks&nbsp;task&nbsp;routines&nbsp;take&nbsp;a&nbsp;task&nbsp;ID&nbsp;as&nbsp;the&nbsp;argument&nbsp;specifying&nbsp;<br />a&nbsp;task.&nbsp;VxWorks&nbsp;uses&nbsp;a&nbsp;convention&nbsp;that&nbsp;a&nbsp;task&nbsp;ID&nbsp;of&nbsp;0&nbsp;(zero)&nbsp;always&nbsp;&nbsp;<br />implies&nbsp;the&nbsp;calling&nbsp;task.&quot;&nbsp;<br />&nbsp;<br />“绝大多数与任务相关的VxWorks例程使用“task&nbsp;ID”参数来指定某一任务。&nbsp;<br />按照惯例VxWorks,task&nbsp;ID为0总是用来指定调用任务。”&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />如:函数taskPriorityGet()&nbsp;<br />extern&nbsp;STATUS&nbsp;&nbsp;&nbsp;taskPriorityGet&nbsp;(int&nbsp;tid,&nbsp;int&nbsp;*pPriority);&nbsp;<br />假设有任务A、B、C,任务ID分别是0x10000、0x20000、0x30000&nbsp;<br />对应的优先级分别是100、200、300,则int&nbsp;tidOfTaskC&nbsp;=&nbsp;0x30000;&nbsp;<br />void&nbsp;test_taskPriorityGet()&nbsp;<br />{&nbsp;<br />&nbsp;&nbsp;&nbsp;int&nbsp;pri;&nbsp;<br />&nbsp;&nbsp;&nbsp;taskPriorityGet&nbsp;(tidOfTaskC,&nbsp;&amp;pri);&nbsp;<br />&nbsp;&nbsp;&nbsp;printtf(&quot;Priority&nbsp;of&nbsp;task&nbsp;C&nbsp;is&nbsp;%d.\n&quot;,&nbsp;pri);&nbsp;<br />&nbsp;&nbsp;&nbsp;taskPriorityGet&nbsp;(0,&nbsp;&amp;pri);&nbsp;<br />&nbsp;&nbsp;&nbsp;printtf(&quot;Priority&nbsp;of&nbsp;the&nbsp;calling&nbsp;task&nbsp;is&nbsp;%d.\n&quot;,&nbsp;pri);&nbsp;<br />}&nbsp;<br />如果上面函数在任务A的上下文中执行,则会打印&nbsp;<br />Priority&nbsp;of&nbsp;task&nbsp;C&nbsp;is&nbsp;300.&nbsp;<br />Priority&nbsp;of&nbsp;the&nbsp;calling&nbsp;task&nbsp;is&nbsp;100.&nbsp;<br />如果上面函数在任务A的上下文中执行,则会打印&nbsp;<br />Priority&nbsp;of&nbsp;task&nbsp;C&nbsp;is&nbsp;300.&nbsp;<br />Priority&nbsp;of&nbsp;the&nbsp;calling&nbsp;task&nbsp;is&nbsp;200.&nbsp;<br />&nbsp;<br />其实对于这个问题的理解关键是要注意在多任务环境中,同一个函数是有可能&nbsp;<br />被多个任务所调用的(在不同的上下文环境中执行),如:&nbsp;<br />void&nbsp;task_A_entry()&nbsp;<br />{&nbsp;<br />&nbsp;&nbsp;&nbsp;test_taskPriorityGet();&nbsp;<br />}&nbsp;<br />&nbsp;<br />void&nbsp;task_B_entry()&nbsp;<br />{&nbsp;<br />&nbsp;&nbsp;&nbsp;test_taskPriorityGet();&nbsp;<br />}&nbsp;<br />task_A_entry、task_B_entry分别是任务A、B的入口函数。&nbsp;<br />&nbsp;<br />&nbsp;<br />【&nbsp;在&nbsp;gamaknife&nbsp;(lucas)&nbsp;的大作中提到:&nbsp;】&nbsp;<br />∶<i>&nbsp;VxWorks&nbsp;uses&nbsp;a&nbsp;convention&nbsp;that&nbsp;a&nbsp;task&nbsp;ID&nbsp;of&nbsp;0&nbsp;(zero)&nbsp;always&nbsp;implies&nbsp;the&nbsp;cal&nbsp;</i><br />∶<i>&nbsp;ling&nbsp;task.&nbsp;</i><br />&nbsp;<br />&nbsp;<br />--&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我歌月徘徊,我舞影零乱&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;醒时同交欢,醉后各分散&nbsp;<br />&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;202.96.134.135]&nbsp;<br /><a href="00000005.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000007.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -