完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题,关于UCOSIII统计任务计算CPU使用率问题,在统计任务的钩子函数中将OSStatTaskCPUUsage发到串口上显示,可是发现不屏蔽下图程序中的程序为1668,利用率应该是16.68%,当屏蔽后CPU使用率为1525(15.25%),此处有个疑惑,程序中才点亮几个LED灯切换,不至于使用率这么大吧? 望各位大神帮忙解答!谢谢了! 另还有个困惑,若开启时间片轮转,当前的任务必须在这个是时间片内完成是么? 比如还是下面的程序,在任务最后delay延时500MS后加上个循环打印三次输出,然后n,发现数据顺序是乱的,时间片长度为1(5ms),每个任务为4个时间片,即使加长时间片也是乱的。望各位帮忙解答,不胜感激!!!
|
|
相关推荐
5个回答
|
|
1、你的延时函数是不是通过系统的延时函数实现的?如果不是的话是不会进行调度,根据你的情况应该可以排除不是这个问题引起的。
2、统计任务是否位于系统启动后的第一个任务或者说没有比统计任务更高级的任务在运行?统计任务在启动的时候会计算出一个只有统计任务运行时候的值a,这个值将会被作为后期统计任务运行的一个基数,统计任务运行的时候会有一个b值,这个值是在统计任务内自加的,计算使用率的时候就是通过b值和a值的比较的结果。如果统计任务在计算a值的时候***扰了,那么统计任务统计出来的使用率就是不准的。 |
|
|
|
后一个问题已经找到,是因为每次的延时中都会有任务调度,任务走的很乱,规整一下程序,最后放一个延时就好了,但是发现时间片不是“OSSchedRoundRobinCfg (DEF_ENABLED,2,&err);”参数2(节拍)*任务初始化中的个数,跟这个参数没有关系么?通过实验发现,当数据乱了之后,调整任务初始化中参数可以解决,而改变时间片轮转配置函数的参数并不能够解决乱码的问题??哈哈哈,语言组织能力不强,顶一个!!前辈快快出现!
|
|
|
|
您好:可以排除延时函数的影响,关于您说的2条,统计任务的优先级是最大优先级减2,应该是倒数第二位,最后一位是空闲任务,其他两个LED灯的任务为是可以执行到的且可以正常切换的。您说的启动的时候计算一个只有统计任务的A值,是在OSStatTaskCPUUsageInit调用的这个函数么?这个是在创建第一个任务之前初始化的。
|
|
|
|
我说的不是太好,你先看看这个网址http://blog.sina.com.cn/s/blog_68dd6c770100t2la.html,看能不能解决,到时候可以讨论讨论
|
|
|
|
嗯嗯 好的 谢谢您,我先再把手册仔细看一遍,可能会漏掉什么,再次感谢!!!
|
|
|
|
只有小组成员才能发言,加入小组>>
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 03:45 , Processed in 1.041556 second(s), Total 89, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号