专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VxWorks

taskspawn 分配一个任务时,参数中有优先级,堆栈大小,小弟我要如何来写啊刚刚搞这个东西

发布时间:2010-06-14 16:52:24 文章来源:www.iduyao.cn 采编人员:星星草
taskspawn 分配一个任务时,参数中有优先级,堆栈大小,我要怎么来写啊?刚刚搞这个东西。
taskspawn 分配一个任务时,参数中有优先级,堆栈大小,我要怎么来写啊?刚刚搞这个东西。
我看例子中优先级大都是90,我要是创建多个任务时,都写90行吗?
还有堆栈大小我要根据什么来设置啊?
谢谢了

------解决方案--------------------
系统默认任务优先级是100 你最好把用户任务优先级设置成100开外
------解决方案--------------------
优先级根据设计的任务权重来分配,优先级高如算法之类的,优先级低的如IO控制致力。
都设置成一种就是时间片轮转方式调度,也可以。


堆栈大小一般是根据你程序的内存使用情况而定的,如果拿不准,可以预设大一些,然后根据运行情况(Tornado里有插件可以时时查询)再降低。一般要有50%的余量。

------解决方案--------------------
[code=C/C++][/code]
int taskSpawn
(
char * name, /* name of new task (stored at pStackBase) */
int priority, /* priority of new task */
int options, /* task option word */
int stackSize, /* size (bytes) of stack needed plus name */
FUNCPTR entryPt, /* entry point of new task */
int arg1, /* 1st of 10 req'd task args to pass to func */
int arg2,
int arg3,
int arg4,
int arg5,
int arg6,
int arg7,
int arg8,
int arg9,
int arg10
)

一般来说,应用程序的优先级不应当比系统任务高,通常选择100以后的优先级。
另外,任务栈的大小要根据具体实现来确定,通常要考虑最深嵌套下的栈开销,
还要考虑中断栈开销以及中断嵌套的问题。
你可以先设置一个比较大的数,然后根据运行后的情况再减小栈,shell里可以查看
到栈使用的峰值,你可以在这个基础上考虑20%的冗余。
如果栈溢出,那么和内存越界操作是等同效果的。

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: