野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18158|回复: 2

使用UCOSIII程序运行一会进入OS_IdleTask (void *p_arg)中出不来了

[复制链接]
发表于 2017-5-12 22:56:51 | 显示全部楼层 |阅读模式
1火花
应用STM32F407,应用UCOSIII,通过can进行数据的收发,程序运行一段时间就进入OS_IdleTask (void  *p_arg)中,程序不能再执行,通过jlink仿真程序停在图中位置,知道是进入了空任务,但不知道如何去解决

photo.png
回复

使用道具 举报

发表于 2017-5-13 08:48:51 | 显示全部楼层
主任务都挂起了就会切换到空任务,没毛病
回复

使用道具 举报

 楼主| 发表于 2017-5-14 10:53:40 | 显示全部楼层
随风 发表于 2017-5-13 08:48
主任务都挂起了就会切换到空任务,没毛病


void Monitor_task(void *p_arg)
{
        OS_ERR err;
        p_arg = p_arg;
        while(1)
        {               
                if(ARM_RST==0)       
                {
                        X_AtRstSensorPosition();
                }
                if(X_RstCommend_Flag==3)
                {
                        MoveToRstSensor_SecondTime();
                }
       
                OSTimeDlyHMSM(0,0,0,20,OS_OPT_TIME_HMSM_STRICT,&err);
        }
}
在仿真时程序进入空任务中后,我去看自定义的任务条件如上面这个,程序并没有去执行X_AtRstSensorPosition();和MoveToRstSensor_SecondTime();这两函数,似乎程序卡死在图中空任务的位置。优先级方面,这个任务优先级也高于空任务。
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-2 13:34 , Processed in 0.030689 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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