1
完善资料让更多小伙伴认识你,还能领取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,看能不能解决,到时候可以讨论讨论
|
|
|
|
嗯嗯 好的 谢谢您,我先再把手册仔细看一遍,可能会漏掉什么,再次感谢!!!
|
|
|
|
只有小组成员才能发言,加入小组>>
788 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1068浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 14:25 , Processed in 1.017234 second(s), Total 56, Slave 47 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号