硬汉嵌入式论坛

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

[技术讨论] 在极小的RAM(2-3k)剩余情况下,如何追踪FreeRtos任务状态?

[复制链接]

7

主题

21

回帖

42

积分

新手上路

积分
42
发表于 2023-11-1 08:55:13 | 显示全部楼层 |阅读模式
想问一下各位前辈的调试技巧。
感慨有时候调试的技能比开发技能更加有用。


如果长时间运行,才出现问题。

情况如下:
1.所有任务一开始运行都是正常的。
2.所有任务的堆栈一开始运行都是正常的。
3.当前系统所剩余Ram只有1-2k。
4.长时间运行后,所有任务还是可以运行。但是出现某个任务运行时间特别卡顿。某些任务甚至不跑了。

想问下前辈们有什么技巧?
1.现在就是通过Ozone,备份代码,等问题出现,之后再去每个任务里面看哪些任务不跑,然后看哪些函数运行的比较久。
2.尝试使用RTT小幅度打印FreeRtos任务状态vTasklist。然后用RTT记录每个任务的堆栈,打印出数据保存。
3.尝试使用暗装变量,通过Ozone,修改变量值,某些任务直接continue不执行。判断哪些任务出问题概率。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-11-1 09:17:32 | 显示全部楼层
使用我们TOOL也可以的,有专门的FreeRTOS Trace功能。无需你的目标板嵌入任何代码。实时监测。

下面所有这些都不需要你的目标板嵌入任何代码,且不会复位你的芯片。出问题了,随时接入查询即可。

1、基于H7-TOOL的硬件异常黑盒子功能V1.0版本操作说明,这个访问不会复位芯片。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=114792

2、锁定了初步位置后,需要判断堆栈问题,可以SWD接口函数读取内容判断,这个访问不会复位芯片。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=118104

3、FreeRTOS Trace功能,可以链表形式展示这个运行架构。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=114824






回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 23:23 , Processed in 0.250137 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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