打印
[MM32硬件]

MM32F5270移植FreeRTOS后的系统调试技巧

[复制链接]
1474|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在水一方00|  楼主 | 2025-2-27 17:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
系统调试方面遇到了一些难题。请问在调试过程中,如何高效地排查任务执行问题,特别是与系统时钟、任务延时和中断冲突相关的问题?有没有调试工具或者代码优化的建议?感谢大家!

使用特权

评论回复
沙发
yangjiaxu| | 2025-2-28 16:08 | 只看该作者
中断冲突啊?我觉得就是配置中断优先级吧

使用特权

评论回复
板凳
wangtaohui| | 2025-2-28 17:03 | 只看该作者
确保任务的优先级设定合理,尤其是在多任务并发的情况下,任务优先级过高或过低都会影响任务调度。

使用特权

评论回复
地板
tpgf| | 2025-3-1 12:33 | 只看该作者
根据系统功能需求,将不同的功能模块划分为独立的任务,明确各任务的职责和优先级,确保系统的高效运行

使用特权

评论回复
5
heimaojingzhang| | 2025-3-2 12:49 | 只看该作者
在任务创建后,要定期检查任务的运行状态,包括任务是否正常运行、是否出现阻塞或异常终止等情况。可以通过FreeRTOS提供的任务查询函数或在任务中设置状态变量来进行监测

使用特权

评论回复
6
keaibukelian| | 2025-3-2 14:38 | 只看该作者
根据任务的功能和复杂度,为其分配合适大小的堆栈空间。如果堆栈大小设置过小,可能导致堆栈溢出;如果设置过大,则会浪费内存资源

使用特权

评论回复
7
paotangsan| | 2025-3-2 16:31 | 只看该作者
利用FreeRTOS提供的堆栈检查功能,定期检查任务堆栈的使用情况,查看是否存在堆栈溢出的风险

使用特权

评论回复
8
renzheshengui| | 2025-3-2 18:22 | 只看该作者
如果使用了FreeRTOS的动态内存分配功能,要密切关注内存的分配和释放情况。避免出现内存泄漏,即分配了内存但没有及时释放的情况

使用特权

评论回复
9
wowu| | 2025-3-2 20:09 | 只看该作者
调试消息队列时,要检查消息队列的创建参数是否正确,如队列长度、消息大小等。在发送和接收消息时,要确保消息的格式和内容正确,并且发送方和接收方对消息的处理逻辑一致

使用特权

评论回复
10
发给她更好fh| | 2025-3-30 01:14 | 只看该作者
使用 SystemCoreClockUpdate(); 确保 SystemCoreClock 变量值正确。

使用特权

评论回复
11
发给她更好fh| | 2025-3-30 01:14 | 只看该作者
使用 示波器或逻辑分析仪 监测 MCO(主时钟输出)引脚,确保时钟符合预期。

使用特权

评论回复
12
发给她更好fh| | 2025-3-30 01:14 | 只看该作者
确保 HAL_GetTick() 或 xTaskGetTickCount() 返回正确的时间戳。

使用特权

评论回复
13
wang6623| | 2025-3-31 13:28 | 只看该作者
检查任务的优先级是否设置合理,优先级不合理可能导致任务无法按预期执行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

583

帖子

0

粉丝