硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4418|回复: 7
收起左侧

[FreeRTOS] 打印任务信息的 实现 原理

[复制链接]

22

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2016-8-10 21:31:27 | 显示全部楼层 |阅读模式
博主,可以说说 FREERTOS打印任务 信息的  实现原理吗?我看的你的教程,但是看完 看了好几遍都没有看懂 是什么原理,为什么需要这个定时器;
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2016-8-11 11:07:49 | 显示全部楼层
通过一个精度高于systick的定时器来实现计数功能,在切换进一个任务,切换出一个统计这段过程的统计此任务的执行时间计数值。每个任务的执行时间统计都是这样的,以你创建的定时器为时间基准进行计数。
回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
发表于 2018-4-9 10:06:51 | 显示全部楼层
eric2013 发表于 2016-8-11 11:07
通过一个精度高于systick的定时器来实现计数功能,在切换进一个任务,切换出一个统计这段过程的统计此任务 ...

这个问题也困扰了我许久,版主的意思是,这个定时器的作用是,切进切出一个任务,定时器的那个变量增加了多少,增加得多的说明占用的时间比较长,使用率就高,这样?那他是以哪个东西来做基准的呢?不会是每个任务增加的变量数,去除以所有任务的跑一次变量增加的总和 这样去求这个百分比吧?如果是那样,空闲任务不会99%,求版主指导下哈
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2018-4-9 11:37:19 | 显示全部楼层
kaxilion 发表于 2018-4-9 10:06
这个问题也困扰了我许久,版主的意思是,这个定时器的作用是,切进切出一个任务,定时器的那个变量增加了 ...

基准就是这个高精度的定时器。每个任务都会记录自己当前已经运行的总时间。然后看占用系统总时间的百分比
回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
发表于 2018-4-9 13:56:37 | 显示全部楼层
eric2013 发表于 2018-4-9 11:37
基准就是这个高精度的定时器。每个任务都会记录自己当前已经运行的总时间。然后看占用系统总时间的百分比

要是这么说,那超过2的32次方也没关系吧,反正每个任务都是记录自己的运行时间间隔,就是在溢出那一瞬间可能会有问题,要是内部没做溢出处理的话
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2018-4-9 14:31:42 | 显示全部楼层
kaxilion 发表于 2018-4-9 13:56
要是这么说,那超过2的32次方也没关系吧,反正每个任务都是记录自己的运行时间间隔,就是在溢出那一瞬间 ...

有问题,基准溢出后,后面计数都会出问题。正常应该每100ms统计一次,像uCOS那种的比较合理。
回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
发表于 2018-4-9 16:06:52 | 显示全部楼层
eric2013 发表于 2018-4-9 14:31
有问题,基准溢出后,后面计数都会出问题。正常应该每100ms统计一次,像uCOS那种的比较合理。

我看教程里面指溢出是指定时器的那个TimeTick数值的溢出,计算得出超过59分钟就不准确,但是我放了快一天,任务的使用率也没看出有什么异常哦,其他任务都是小于1%,空闲任务99%,倒是运行计数空闲人物快溢出了,所以很疑惑,这个溢出到底指哪个。

另外版主大大有没RTOS任务使用率的计算公式,网上都找不到计算公式,所以疑惑比较多,这个计算方法和UC应该是类似的吧?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2018-4-9 17:15:09 | 显示全部楼层
kaxilion 发表于 2018-4-9 16:06
我看教程里面指溢出是指定时器的那个TimeTick数值的溢出,计算得出超过59分钟就不准确,但是我放了快一天 ...

不一样,uC是没100ms统计一次,不会有这种溢出问题。

FreeRTOS仅在调试阶段用用就行。测试完毕后,项目中直接去掉。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 16:15 , Processed in 0.292962 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表