OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6419|回复: 3

如果在ucosii中其中的一个任务中使用return跳出这个任务的死循环,怎么就死机了??

[复制链接]

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
发表于 2015-6-3 09:21:21 | 显示全部楼层 |阅读模式
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的话根本木有发生任务切换,不死机才怪啊。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-6-3 09:21:22 | 显示全部楼层
大哥!!!start_task()里面在你调用return之前要有一个可以引发任务切换的东东啊,哪怕你直接调用OSSched()函数也行啊,你直接return的话根本木有发生任务切换,不死机才怪啊。
开往春天的手扶拖拉机
回复

使用道具 举报

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
 楼主| 发表于 2015-6-4 08:42:52 | 显示全部楼层
好像不是这样的     因为   我将程序改为这样还是死机的状态!!!如果将return  注释掉就都正常了!!!!  不知道是什么情况?????

回复

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2016-4-11
在线时间
38 小时
发表于 2016-6-12 23:21:41 来自手机 | 显示全部楼层
return  之后就退出大循环了,下次进不去了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表