完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#if OS_CFG_SCHED_ROUND_ROBIN_EN
OSSchedRoundRobinCfg(DEF_ENABLED,1,&err); #endif 我看原子哥的视频还有看了手册,这个函数的第二个参数我理解成一个时间片的时间长度! 比如是1那么就是 一个时间片:1*5 =5ms 若是2那么就是一个时间片:2*5 =10ms 若是0那么默认一个时间片: 100ms OSTaskCreate((OS_TCB * )&Task1_TaskTCB, (CPU_CHAR * )"Task1 task", (OS_TASK_PTR )task1_task, (void * )0, (OS_PRIO )TASK1_TASK_PRIO, (CPU_STK * )&TASK1_TASK_STK[0], (CPU_STK_SIZE)TASK1_STK_SIZE/10, (CPU_STK_SIZE)TASK1_STK_SIZE, (OS_MSG_QTY )0, (OS_tiCK )2, (void * )0, (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, (OS_ERR * )&err); 然后OSTaskCreate函数的参数 (OS_TICK) 这里就是设置该任务最大执行时间! 比如我这里设置了2,那么就是该任务最多有2个时间片的时间执行! 若是设置成3,那么就是该任务最多有3个时间片的时间执行! 以上是我的理解! 但是我在程序中,改了下OSSchedRoundRobinCfg(DEF_ENABLED,1,&err); 中的第2个参数值,发现任务执行的时间根本没变! 不管我把这个值改成0还是多少,任务最大执行时间都是固定。 只有我改了OSTaskCreate函数的参数 (OS_TICK) ,任务最大执行时间才会随之改变! 这样就让我感觉一个时间片的长短是固定的,不是随着OSSchedRoundRobinCfg(); 中的第2个参数值而改变的! 求原子哥或者懂的各位解惑下!万分感谢!! |
|
相关推荐
6个回答
|
|
你好 刚才关于这个函数我查了下 OSSchedRoundRobinCfg这个函数的第二个参数是默认的时间片长度的意思,也就是说如果你创建任务时设置的时间片长度为0,那么系统会用这个值来代替,不知你明白了吗,如果你想用这个函数改变时间片的话,创建任务时需要将时间片设为0
|
|
|
|
是不是应该先将任务停下来再设置呢 还有是否有相同优先级的任务 时间片只对相同优先级的任务起作用。
|
|
|
|
我程序里创建了2个优秀级相同的任务 Task1 和Task2的!
任务1和任务2是有轮转起来的,但是时间片不随着OSSchedRoundRobinCfg(DEF_ENABLED,1,&err); 这函数的第二个参数的变化而变化 |
|
|
|
谢谢这位仁兄解答!
我按照你的意思,又去试了下,确实当创建任务时设置的时间片长度为0时,OSSchedRoundRobinCfg这个函数的第二个参数设置就起的作用。 我又重新看了遍手册,是我对创建函数的那个设置时间参数理解有误。 创建函数这个时间参数也是对时间片长度的设置! 那如果我对创建函数时间参数做了设置,是不是OSSchedRoundRobinCfg这个函数的第二个参数的设置就不起作用,此函数就只有打开时间片轮转,使任务调度的作用了??? |
|
|
|
是的 就是这个意思
|
|
|
|
谢谢解惑
|
|
|
|
只有小组成员才能发言,加入小组>>
684 浏览 0 评论
1100 浏览 1 评论
2465 浏览 5 评论
2799 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2638 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
649浏览 9评论
645浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
776浏览 6评论
620浏览 5评论
662浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 19:20 , Processed in 1.189285 second(s), Total 90, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号