打印
[uCOS/RTOS]

Ucos 任务删除

[复制链接]
2319|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
t待鸿|  楼主 | 2014-4-18 21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ucos, os, ST, kd
我的思路是在需要任务A时就通过命令创建任务A,在想删除任务A时,就通过发中止命令,然后给任务A发消息,让其自己删除自己;
即接受到创建命令后,创建任务TaskA;
接受到中止命令后,发消消息给TaskA,通过OSTaskDel(A任务优先级)删除自己;

现在的现象是第一次创建任务执行是没有问题的,但是在接受中止命令后,再次创建任务,多次重复这个过程,有时就会出问题,感觉像是程序没有初始化正确,乱跑,
想请教下:uCOS中的任务操作是不是有什么注意事项!

相关帖子

沙发
john_lee| | 2014-4-18 23:25 | 只看该作者
为什么要“删除”任务?

使用特权

评论回复
板凳
t待鸿|  楼主 | 2014-4-19 23:13 | 只看该作者
john_lee 发表于 2014-4-18 23:25
为什么要“删除”任务?

不好意思,白天没上网。我的想法是要什么任务就创建什么任务,不要的话删除吧,这样子感觉会很简单嘛!

使用特权

评论回复
地板
lvyunhua| | 2014-4-20 10:29 | 只看该作者
不让他运行就可以了,阻塞任务吧。

使用特权

评论回复
5
john_lee| | 2014-4-20 15:25 | 只看该作者
t待鸿 发表于 2014-4-19 23:13
不好意思,白天没上网。我的想法是要什么任务就创建什么任务,不要的话删除吧,这样子感觉会很简单嘛! ...

“不要的话删除”,就这一点,继续启发:
1、被删除的任务,以后会不会再次创建?
2、删除任务后,释放掉的 RAM(TCB 和任务栈),会有别的用途吗?比如存储数据或缓冲区或其它任务的 TCB 和栈。

使用特权

评论回复
6
t待鸿|  楼主 | 2014-4-21 22:28 | 只看该作者
john_lee 发表于 2014-4-20 15:25
“不要的话删除”,就这一点,继续启发:
1、被删除的任务,以后会不会再次创建?
2、删除任务后,释放掉 ...

首先,谢谢你的回复!实话说,看了你这两个启示,我有点蒙了,不知道怎么回事?
    但我试着回答下你的启发,如果不对的,还望指教。
        1、任务删除后,的确是需要还能再次创建的,即不断电关机,再次启动相同的功能;
        2、任务删除后,释放的RAM(TCB和任务栈),有可能是会被其它新建的任务启用,但我目前的操作是每次创建其它新任务时,会先删除旧的任务,那么再次创建相同任务时,应该是用的同一片RAM吧?

使用特权

评论回复
7
t待鸿|  楼主 | 2014-4-21 22:30 | 只看该作者
本帖最后由 t待鸿 于 2014-4-21 22:58 编辑
lvyunhua 发表于 2014-4-20 10:29
不让他运行就可以了,阻塞任务吧。

你的意思是把任务挂起是吗?如果这样,我再次运行时,任务中的独有变量就不会变了哟?但我的想法是,任务再次运行,所有功能都是重新开始,和第一次运行一样的。

使用特权

评论回复
8
john_lee| | 2014-4-22 15:43 | 只看该作者
t待鸿 发表于 2014-4-21 22:30
你的意思是把任务挂起是吗?如果这样,我再次运行时,任务中的独有变量就不会变了哟?但我的想法是,任务 ...

那么你这些所谓的希望每次运行任务时都是新的变量,他们又是在哪里初始化的?

使用特权

评论回复
9
t待鸿|  楼主 | 2014-4-23 17:13 | 只看该作者
john_lee 发表于 2014-4-22 15:43
那么你这些所谓的希望每次运行任务时都是新的变量,他们又是在哪里初始化的? ...

是放在while前初始化的

使用特权

评论回复
10
cos12a| | 2016-2-14 00:45 | 只看该作者
放在恢复任务后初始化也是可以的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

69

帖子

0

粉丝