完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
p_list = &OStickListDly;
p_tcb = p_list->TCB_Ptr; if (p_tcb != (OS_TCB *)0) { p_tcb->TickRemain--; while (p_tcb->TickRemain == 0u) { if (p_tcb->TaskState == OS_TASK_STATE_DLY) { p_tcb->TaskState = OS_TASK_STATE_RDY; OS_RdyListInsert(p_tcb); /* Insert the task in the ready list */ } else if (p_tcb->TaskState == OS_TASK_STATE_DLY_SUSPENDED) p_tcb->TaskState = OS_TASK_STATE_SUSPENDED; p_list->TCB_Ptr = p_tcb->TickNextPtr; p_tcb = p_list->TCB_Ptr; /* Get 'p_tcb' again for loop */ if (p_tcb == (OS_TCB *)0) break; else p_tcb->TickPrevPtr = (OS_TCB *)0; } } 这是对延迟任务处理的代码,只对延迟链表里的第一个任务的剩余节拍减1,不是应该对所有延迟任务的剩余节拍都减1吗?像上面那样处理,会造成链表后面的任务实际延迟时间变长? |
|
相关推荐
1个回答
|
|
是的,它是1个差分链表,只需减表头。
|
|
|
|
只有小组成员才能发言,加入小组>>
643 浏览 0 评论
1078 浏览 1 评论
2450 浏览 5 评论
2774 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2609 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
634浏览 9评论
630浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
759浏览 6评论
606浏览 5评论
650浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 06:17 , Processed in 0.987260 second(s), Total 52, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号