硬汉嵌入式论坛

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

关于由GD32f107更换为STM32107所遇到的问题

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2025-2-24 16:07:41 | 显示全部楼层 |阅读模式
     如题,最近将原本使用的gd的单片机更换为st的之后频繁出现hardflat中断,原本在gd上是没有问题的,CAN1没有问题,一起用CAN2开始正常,运行十几分钟有时几个小时会出现harfalt中断,到底是什么问题?有没有大佬能告知一下!
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2025-2-24 16:30:47 | 显示全部楼层
操作系统使用的是ucosii,出现的时间不确定,有时候几分钟就出现一次,有时候一个多小时才复现
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116223
QQ
发表于 2025-2-24 17:53:14 | 显示全部楼层
方便的话,MDK调试状态全速运行,出现硬件异常后,看下MDK的Faults Reports的错误类型。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2025-2-25 15:38:05 | 显示全部楼层
eric2013 发表于 2025-2-24 17:53
方便的话,MDK调试状态全速运行,出现硬件异常后,看下MDK的Faults Reports的错误类型。

图1

图1

图2

图2

单片机死机后查询到LR的值为0xFFFFFFFD,sp的值为0x20008010,call stack 给了三个函数,进去之后发现是在执行can task时如图二err=OS_ERR_NONE,导致执行下去死机,现在测试情况下我已经把CAN2的发送停掉了,ERR应该不会等于OS_ERR_NONE,单独跑CAN2也会出这个问题,但是跑CAN1就一切正常,原来的程序是在GD32F107上运行的一切正常,在STM32F107上就出现这个问题?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116223
QQ
发表于 2025-2-26 09:17:20 | 显示全部楼层
zlh666 发表于 2025-2-25 15:38
单片机死机后查询到LR的值为0xFFFFFFFD,sp的值为0x20008010,call stack 给了三个函数,进去之后发 ...

可以考虑单步调试排查下你的这个任务,另外不排除其它任务的栈空间小了,有溢出影响到这个任务。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2025-2-26 17:14:56 | 显示全部楼层
eric2013 发表于 2025-2-26 09:17
可以考虑单步调试排查下你的这个任务,另外不排除其它任务的栈空间小了,有溢出影响到这个任务。

感谢硬汉哥回复,找到问题所在了,应该是关于远程帧的宏定义对不上导致,从消息队列里读出来的是6,宏定义的是2,导致的这个问题.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 13:33 , Processed in 0.244694 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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