ucos2问题:使用c语言创建一个任务堆栈,将这个堆栈赋值给一个任务控制块?求解决?

 我来答
小明332
2014-05-22 · TA获得超过101个赞
知道答主
回答量:63
采纳率:0%
帮助的人:63.3万
展开全部
ucos的任务堆栈就是一个内存区域,由于其不支持动态内存分配所以可以用数组的方式定义堆栈,如unsinged char task_tack[2000];就会有一个2000字节内存空间 然后将 task_tack赋给任务控制即可。
追问
求实现代码啊/
追答
#define     TASKSTK 0x8000
void sys_func( void )
{
OS_TCB my_tasktTcb;
CPU_STK my_taskStk[0x8000];
OS_ERR err;
OSTaskCreate((OS_TCB *)&my_tasktTcb,
(CPU_CHAR *)((void *)"my_Task"),
(OS_TASK_PTR)my_task,
(void *)0,
(OS_PRIO )9,
(CPU_STK *)my_taskStk,
(CPU_STK_SIZE)(TASKSTK/10),
(CPU_STK_SIZE)TASKSTK,
(OS_MSG_QTY )0u,
(OS_TICK )0u,
(void *)0,
(OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR | ),
(OS_ERR *)(&err));
}
void my_task( void )
{
while(1);
}
这是在ucos3中创建任务,在函数sys_func中声明了my_taskStk的数组,其大小为
0x8000*sizeof(CPU_STK),随后将其赋给任务块my_tasktTcb。之后就可以用了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式