完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
根据任哲老师的《嵌入式实时操作系统uCOS-II原理及应用》,实现功能:在UCOSII中创建了两个任务,AppStartTask()和youtask(),任务AppStartTask()请求删除youtask()。AppStartTask()任务打印“M”,youtask打印“Y”;
遇到的问题:AppStartTask()任务请求删除youtask()任务以后,AppStartTask()不能正常打印。 附源码:运行环境VS;可以在win10上运行。 uCOS初学者,希望大家指教,谢谢!!! 文件太大了,上传受到限制,下面是源码的百度云链接 链接:http://pan.baidu.com/s/1dEC5SXF 密码:4hzd |
|
相关推荐
16个回答
|
|
|
我记得之前看资料,请求删除后,被删除的任务自己判断有没有请求删除自己,然后自己删除自己。
|
|
|
|
|
|
void youtask(void *pdata)
{ pdata = pdata; while(1) { printf("Y"); OSTimeDlyHMSM(0, 0, 0, 500); OS_ENTER_CRITICAL(); if(OSTaskDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ) { printf("YouTask: 我必须要删除自己n"); OSTimeDlyHMSM(0, 0, 0, 500); printf("YouTask: 我已经删除了自己n"); OSTaskDel(YOUTASK_PRIO); } OS_EXIT_CRITICAL(); } } 是这样写的,根据任哲老师那本书也是一样的。成功删除以后,请求删除方也不能运行了 |
|
|
|
|
|
那看你请求删除任务,返回值判断。
|
|
|
|
|
|
您说的是什么意思,可以详细一点吗? 请求任务删除已经判断了呀, 要是返回值为OS_TASK_DEL_REQ,就调用OSTaskDel(),就是写的呀?
|
|
|
|
|
|
|
|
|
|
|
|
被删除方也就是YOUTASK()任务被删除以后,AppStartTask()任务是请求删除,它的请求完成以后,自己还应该继续打印字符"M"呀。运行的现象是请求完成以后AppStartTask()任务直接停止了,没有继续打印字符“M”
|
|
|
|
|
|
你先把临界区中的延时去掉
|
|
|
|
|
|
|
|
|
|
|
|
void AppStartTask (void *p_arg)
{ static UINT8 i = 0; p_arg = p_arg; OSTaskCreate(youtask, (void *)0, (OS_STK *)&YOUTASK_STK[YOUTASK_SIZE-1], YOUTASK_PRIO); while(1) { if(i > 50) { printf("n"); i = 0; } i++; printf("M"); OSTimeDlyHMSM(0, 0, 0, 500); if(i == 30) { while(OSTaskDelReq(YOUTASK_PRIO) != OS_TASK_NOT_EXIST) { printf("MyTask:我要求YouTask自己删除自己n"); OSTimeDly(1); break; } printf("M"); } else continue; } } 您看看,是不是那个出问题了 |
|
|
|
|
|
到底哪里出问题了?
打印了什么?该打印什么没打印? 另外,你不要给临界区加延时。 while(OSTaskDelReq(YOUTASK_PRIO) != OS_TASK_NOT_EXIST)这句是直接成立了吗?那不是直接打印了M 你把你的现象贴出来,本来应该怎样,结果怎样. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
恭喜你,你的问题已经描述清楚了。
1.你去掉进入和退出临界区,试下有变化吗? 2.你的ucosii和我的为什么不一样呢?返回值宏定义名字都不同。 3.不打印之后程序跑到哪里了,能跟踪吗? |
|
|
|
|
|
|
|
|
|
|
|
代码本事的逻辑是没有问题的,只是移植到VS环境下出现了一点问题,在虚拟机下用BC3.1进行编译,代码运行的结果和预想的一样。但是现在vs下的工程,出现问题在哪还没有发现,望论坛内的高手可以指点一下,谢谢!
|
|
|
|
|
|
我只知道删除任务是任务接受请求删除自身(就是不运行任何调用跳转到该任务的事件)
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1020浏览 1评论
1849浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1359浏览 1评论
1851浏览 0评论
1177浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 21:31 , Processed in 1.071814 second(s), Total 104, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2991