完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我想做放弃一次时间片的实验遇到了奇怪的现象,自己想半天想不出来啊。新人求指教。这么写 (如图1)
这样写结果算是成功(任务2先跑的)(结果如图)。 可是我把放弃的函数写在这里(如图2) 结果是 这样的啊。 我觉得到第二次的时候应该是任务2先跑第二次,可是没有。我百思不解啊。 |
|
相关推荐
8个回答
|
|
最近学校忙,没仔细研究但我有一个不是解决办法的办法,虽然能用,但是不知道原因,也不知道会不会对系统产生不良影响。方法如下:if (p_rdy_list->NbrEntries < (OS_OBJ_QTY)1) 把这句话改成这样就行了。别问我为啥,我试出来的。
|
|
|
|
|
|
求解答啊
|
|
|
|
楼主解决了吗,我和你的情况是一样的, 但是我觉得不是放在哪个位置的原因,你把那个if里面的判断改成==1就一样的可以执行,就是只要任务1不是第一次循环的时候就调用这个参数,那么后面再调用就没用了,我不知道原因是啥,不知道是不是串口发送的原因,看看能不能做另一个实验来验证时间片的放弃,不用串口发。楼主大大如果解决了,指导一下
|
|
|
|
楼主我把err输出来看了下,返回值是27002,也就是说我在这个优先级下只建立了一个任务,但是不是建立了两个任务吗,所以不知道是出了什么问题
|
|
|
|
我也是这么做的,但是不知道怎么改啊。我的错误返回值是27002,。也就是 Only 1 task at this priority, nothing to yield to 错误。我不知怎么弄,研究中。
|
|
|
|
错误返回值是27002 也就是 OS_ERR_ROUND_ROBIN_1 = 27002u,
你查看一下你2个任务的优先级是否一样? 多个任务拥有相同的优先级,可以使用时间片轮转调度的方法调度任务 请认真查看原子哥的ucos教程 |
|
|
|
[C] 纯文本查看 复制代码
OS_RdyListInit();OS_RdyListInsertHead((OS_TCB*)&Task2TaskTCB);OS_RdyListInsertTail((OS_TCB*)&Task1TaskTCB); 这三步就不需要修改if (p_rdy_list->NbrEntries < (OS_OBJ_QTY)2) 这句话了,,, 但是还有一些列问题就是放弃自己的时间片,然后程序就不执行了 |
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:38 , Processed in 1.240590 second(s), Total 93, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号