完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
用了OSTaskSuspend((OS_TCB*)&Task2_TaskTCB,&err);函数吧任务二挂起,用OSTaskResume((OS_TCB*)&Task2_TaskTCB,&err);函数把任务二解挂,正常,
但是如果连续调用OSTaskSuspend((OS_TCB*)&Task2_TaskTCB,&err)函数两次,必须使用两次OSTaskResume((OS_TCB*)&Task2_TaskTCB,&err);解挂。为什么,UCOSIII的程序源码没太看懂,可简要说一下UCOSIII任务挂起与接挂的原理吗?谢谢 |
|
相关推荐
5个回答
|
|
|
看任务挂起函数和任务解挂函数的源码!挂起的时候任务控制块的成员变量SuspendCtr用来记录任务挂起次数!每挂起一次此变量就加一,解除挂起的时候此变量就会减一。只有最后一次解除挂起任务才会起作用的。也就是你所谓的试验结果,连续两次调用函数OSTaskSuspend()挂起一个任务,那么就需要调用两次解除函数OSTaskResume()才能最终恢复任务的运行!!!!
|
|
|
|
|
|
测试直接使用的发烧友的例程,因为当时不小心调用了两次挂起函数,只用了一次解挂函数,导致任务没用运行,与是试试调用两次解挂函数,发现程序正常。
|
|
|
|
|
|
谢谢UCSIII源码充斥各种宏定义,看的头都大了
|
|
|
|
|
|
还用一个问题,我看定义一个(void *)0;是什么意思?
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1021浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:47 , Processed in 0.880441 second(s), Total 82, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3281