Ucos 任务删除
我的思路是在需要任务A时就通过命令创建任务A,在想删除任务A时,就通过发中止命令,然后给任务A发消息,让其自己删除自己;即接受到创建命令后,创建任务TaskA;
接受到中止命令后,发消消息给TaskA,通过OSTaskDel(A任务优先级)删除自己;
现在的现象是第一次创建任务执行是没有问题的,但是在接受中止命令后,再次创建任务,多次重复这个过程,有时就会出问题,感觉像是程序没有初始化正确,乱跑,
想请教下:uCOS中的任务操作是不是有什么注意事项! 为什么要“删除”任务? john_lee 发表于 2014-4-18 23:25 static/image/common/back.gif
为什么要“删除”任务?
不好意思,白天没上网。我的想法是要什么任务就创建什么任务,不要的话删除吧,这样子感觉会很简单嘛! 不让他运行就可以了,阻塞任务吧。 t待鸿 发表于 2014-4-19 23:13 static/image/common/back.gif
不好意思,白天没上网。我的想法是要什么任务就创建什么任务,不要的话删除吧,这样子感觉会很简单嘛! ...
“不要的话删除”,就这一点,继续启发:
1、被删除的任务,以后会不会再次创建?
2、删除任务后,释放掉的 RAM(TCB 和任务栈),会有别的用途吗?比如存储数据或缓冲区或其它任务的 TCB 和栈。 john_lee 发表于 2014-4-20 15:25 static/image/common/back.gif
“不要的话删除”,就这一点,继续启发:
1、被删除的任务,以后会不会再次创建?
2、删除任务后,释放掉 ...
首先,谢谢你的回复!实话说,看了你这两个启示,我有点蒙了,不知道怎么回事?
但我试着回答下你的启发,如果不对的,还望指教。
1、任务删除后,的确是需要还能再次创建的,即不断电关机,再次启动相同的功能;
2、任务删除后,释放的RAM(TCB和任务栈),有可能是会被其它新建的任务启用,但我目前的操作是每次创建其它新任务时,会先删除旧的任务,那么再次创建相同任务时,应该是用的同一片RAM吧? 本帖最后由 t待鸿 于 2014-4-21 22:58 编辑
lvyunhua 发表于 2014-4-20 10:29 static/image/common/back.gif
不让他运行就可以了,阻塞任务吧。
你的意思是把任务挂起是吗?如果这样,我再次运行时,任务中的独有变量就不会变了哟?但我的想法是,任务再次运行,所有功能都是重新开始,和第一次运行一样的。 t待鸿 发表于 2014-4-21 22:30 static/image/common/back.gif
你的意思是把任务挂起是吗?如果这样,我再次运行时,任务中的独有变量就不会变了哟?但我的想法是,任务 ...
那么你这些所谓的希望每次运行任务时都是新的变量,他们又是在哪里初始化的? john_lee 发表于 2014-4-22 15:43 static/image/common/back.gif
那么你这些所谓的希望每次运行任务时都是新的变量,他们又是在哪里初始化的? ...
是放在while前初始化的 放在恢复任务后初始化也是可以的。
页:
[1]