OpenEdv-开源电子网

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

UCOSIII 开始任务为什么删除自身

[复制链接]

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2019-8-26
在线时间
11 小时
发表于 2019-11-20 20:03:06 | 显示全部楼层 |阅读模式
1金钱
//开始任务
void start_task(void *p_arg)
{
        OS_ERR err;
        CPU_SR_ALLOC();
        p_arg = p_arg;

        CPU_Init();
#if OS_CFG_STAT_TASK_EN > 0u
   OSStatTaskCPUUsageInit(&err);         
#endif

#ifdef CPU_CFG_INT_DIS_MEAS_EN               
    CPU_IntDisMeasMaxCurReset();       
#endif
#if        OS_CFG_SCHED_ROUND_ROBIN_EN  
        OSSchedRoundRobinCfg(DEF_ENABLED,1,&err);  
#endif

        OS_CRITICAL_ENTER();       
        OSTaskCreate((OS_TCB         * )&Task2_TaskTCB,
                                 (CPU_CHAR        * )"task2 task",
                 (OS_TASK_PTR )task2_task,
                 (void                * )0,
                 (OS_PRIO          )TASK2_TASK_PRIO,
                 (CPU_STK   * )&TASK2_TASK_STK[0],
                 (CPU_STK_SIZE)TASK2_STK_SIZE/10,
                 (CPU_STK_SIZE)TASK2_STK_SIZE,
                 (OS_MSG_QTY  )0,
                 (OS_TICK          )0,
                 (void           * )0,
                 (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
                 (OS_ERR         * )&err);
        OS_CRITICAL_EXIT();       
        OSTaskDel((OS_TCB*)0,&err);           //为什么删除自身??
}
请大神指导  为什么UCOSIII里面的开始任务,要在建立完成其他任务后,删除自身任务?仅仅是为了不再运行开始任务吗?如果删除了开始任务,理论上还会运行开始任务中建立的其他任务吗?


最佳答案

查看完整内容[请看2#楼]

因为这个任务不会再被用到所以删除自身没毛病。至于后续你还想创建,当然可以在其它任务里面继续创建新任务,不一定要在这个里面创建。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-11-20 20:03:07 | 显示全部楼层
因为这个任务不会再被用到所以删除自身没毛病。至于后续你还想创建,当然可以在其它任务里面继续创建新任务,不一定要在这个里面创建。
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2019-8-21
在线时间
6 小时
发表于 2019-11-20 21:53:13 | 显示全部楼层
不是一定要删除,删除是为了释放内存。删除开始任务后,会继续执行创建的其他任务,因为创建任务的时候,就已经将任务添加到任务表中了。
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2019-8-26
在线时间
11 小时
 楼主| 发表于 2019-11-21 12:07:09 | 显示全部楼层
zhaoguangxin 发表于 2019-11-20 21:53
不是一定要删除,删除是为了释放内存。删除开始任务后,会继续执行创建的其他任务,因为创建任务的时候,就 ...

明白了,
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2019-8-26
在线时间
11 小时
 楼主| 发表于 2019-11-21 12:08:33 | 显示全部楼层
正点原子 发表于 2019-11-20 20:03
因为这个任务不会再被用到所以删除自身没毛病。至于后续你还想创建,当然可以在其它任务里面继续创建新任务 ...

原子哥,这么说的话,如果不删除,就是每次都会重复建立任务,是吧?
回复

使用道具 举报

14

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1115
金钱
1115
注册时间
2011-10-19
在线时间
256 小时
发表于 2019-11-22 09:00:44 | 显示全部楼层
因为初始化只需要执行一遍。
哥们的小店:http://shop103291259.taobao.com
回复

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2019-12-18
在线时间
23 小时
发表于 2020-3-21 19:24:49 来自手机 | 显示全部楼层
马栋1996 发表于 2019-11-21 12:08
原子哥,这么说的话,如果不删除,就是每次都会重复建立任务,是吧?

也可以挂起
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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