[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
[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
)