硬汉嵌入式论坛

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

[技术讨论] [技术讨论]HardFault问题

[复制链接]

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2025-9-2 20:39:37 | 显示全部楼层 |阅读模式
本帖最后由 QunnieZH 于 2025-9-2 20:52 编辑

最近调试stm32u5x(未开启TrustZone)时,遇到一个奇怪的hardfault问题:单步调试 在 执行BLX R3时(R3值为目标函数地址+1)进入Hardfault.查看寄存器是总线错误。这种情况有遇到过吗?可能是什么原因引起的?使用FreeRTOS。
回复

使用道具 举报

7

主题

339

回帖

360

积分

高级会员

积分
360
发表于 2025-9-3 08:48:27 | 显示全部楼层
1,是不是因为MPU配置问题? 2,R3的值是否本向太为奇数?再+1不是变成偶数了么?
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2025-9-3 09:05:51 | 显示全部楼层
fxyc87 发表于 2025-9-3 08:48
1,是不是因为MPU配置问题? 2,R3的值是否本向太为奇数?再+1不是变成偶数了么?

MPU没配置,R3本来是4字节对齐偶数。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118308
QQ
发表于 2025-9-3 10:25:59 | 显示全部楼层
考虑把你这个跳转函数内容都注释掉,看看正常不。
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2025-9-3 13:09:54 | 显示全部楼层
eric2013 发表于 2025-9-3 10:25
考虑把你这个跳转函数内容都注释掉,看看正常不。

注释掉是正常的。问题已经找到了,是程序使用stl库做浮点数转字符串,编译时没有打开printf float导致。就是不明白为什么单步调试在BLX那句hardfault。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 11:07 , Processed in 0.040446 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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