5778|4

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

taskspawn 分配一个任务时,参数中有优先级,堆栈大小,我要怎么来写啊?刚刚搞这个东西。 [复制链接]

taskspawn 分配一个任务时,参数中有优先级,堆栈大小,我要怎么来写啊?刚刚搞这个东西。
我看例子中优先级大都是90,我要是创建多个任务时,都写90行吗?
还有堆栈大小我要根据什么来设置啊?
谢谢了

最新回复

[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%的冗余。 如果栈溢出,那么和内存越界操作是等同效果的。   详情 回复 发表于 2009-3-17 12:53
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
都写90没问题
操作系统允许多个同优先级任务存在的
堆栈大小可以参考手头的例子来设
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
系统默认任务优先级是100   你最好把用户任务优先级设置成100开外
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
优先级根据设计的任务权重来分配,优先级高如算法之类的,优先级低的如IO控制致力。
都设置成一种就是时间片轮转方式调度,也可以。


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

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
[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%的冗余。
如果栈溢出,那么和内存越界操作是等同效果的。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表