5.1-FreeRTOS之查看任务的信息

FreeRTOS之查看任务的信息

在 FreeRTOS 中,我们也可以查看任务使用 CPU 的情况、使用栈的情况,然后针对性地进行优化。

这就是查看"任务的统计"信息。

13.2.1 栈使用情况

在创建任务时分配了栈,可以填入固定的数值比如 0xa5,以后可以使用以下函数查看

"栈的高水位",也就是还有多少空余的栈空间:

UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask );

原理是:从栈底往栈顶逐个字节地判断,它们的值持续是 0xa5 就表示它是空闲的。

函数说明:

13.2.2 任务运行时间统计

对于同优先级的任务,它们按照时间片轮流运行:你执行一个 Tick,我执行一个 Tick。

是否可以在 Tick 中断函数中,统计当前任务的累计运行时间?

不行!很不精确,因为有更高优先级的任务就绪时,当前任务还没运行一个完整的

Tick 就被抢占了。

我们需要比 Tick 更快的时钟,比如 Tick 周期时 1ms,我们可以使用另一个定时器,

让它发生中断的周期时 0.1ms 甚至更短。

使用这个定时器来衡量一个任务的运行时间,原理如下图所示:

切换到 Task1 时,使用更快的定时器记录当前时间 T1

Task1 被切换出去时,使用更快的定时器记录当前时间 T4

(T4-T1)就是它运行的时间,累加起来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吴的嵌入式笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值