中级会员
 
- 积分
- 446
- 金钱
- 446
- 注册时间
- 2014-4-7
- 在线时间
- 53 小时
|
5金钱
各路高手,请问一下,在ucosii中的某个任务的死循环中使用return,怎么死机了??
不知道是怎么回事? 直接使用的是 原子ucosii的例程 任务调度 在开始任务中做了如下的修改:
void start_task(void *pdata)
{
OS_CPU_SR cpu_sr=0;
pdata = pdata;
OSStatInit(); //初始化统计任务.这里会延时1秒钟左右
OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)
OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);
// OSTaskCreate(led2_task,(void *)0,(OS_STK*)&LED2_TASK_STK[LED2_STK_SIZE-1],LED2_TASK_PRIO); 注释掉了一个任务
// OSTaskSuspend(START_TASK_PRIO); //挂起起始任务. 将挂起开始任务的函数注释了
OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)
return; 添加了 return
}
其他的地方没有做任何的修改,加了个return 不知道 到了什么状态???
|
最佳答案
查看完整内容[请看2#楼]
大哥!!!start_task()里面在你调用return之前要有一个可以引发任务切换的东东啊,哪怕你直接调用OSSched()函数也行啊,你直接return的话根本木有发生任务切换,不死机才怪啊。
|