硬汉嵌入式论坛

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

[STM32H7] 芯片跑飞出现硬件故障,卡死在HardFault_Handler

[复制链接]

3

主题

7

回帖

16

积分

新手上路

积分
16
发表于 2023-7-4 14:33:32 | 显示全部楼层 |阅读模式
本帖最后由 ANG 于 2023-7-4 14:38 编辑

问题描述:单片机上电后,需要初始化Flash,从Flash中读出数据出来,在执行  获得读数据地址GetReadAddress  函数时,标识部分执行两次(图1)。程序调试到HardFault_Handler函数,进入死循环(图2)。
图3-图5为在线仿真时,部分寄存器的参数,LR寄存器值为OxFFFFFFE9,有大佬知道出错原因吗

图1

图1

图2

图2

图3

图3

图4

图4

图5

图5
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106978
QQ
发表于 2023-7-4 15:31:38 | 显示全部楼层
初步来看有可能是这个原因。

石锤内存访问不支持非对齐是否STM32H7的硬件bug
https://www.armbbs.cn/forum.php?mod=viewthread&tid=94562
回复

使用道具 举报

8

主题

136

回帖

160

积分

初级会员

积分
160
发表于 2023-7-4 16:44:39 | 显示全部楼层
addr + j一次是加1字节,不是4字节哦。这就牵涉到内存对其访问的问题了。因为你addr是u8类型的指针
回复

使用道具 举报

3

主题

7

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2023-7-5 15:35:36 | 显示全部楼层
eric2013 发表于 2023-7-4 15:31
初步来看有可能是这个原因。

石锤内存访问不支持非对齐是否STM32H7的硬件bug

我重新跑仿真时发现,有问题和没问题的芯片这段Flash的数据有点不一样,为什么有问题的芯片这段地址的数据没有值啊?
1.jpg
2.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106978
QQ
发表于 2023-7-6 08:49:32 | 显示全部楼层
ANG 发表于 2023-7-5 15:35
我重新跑仿真时发现,有问题和没问题的芯片这段Flash的数据有点不一样,为什么有问题的芯片这段地址的数 ...

这个地址是多少,看不太清楚

下载 (13).png
回复

使用道具 举报

3

主题

7

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2023-7-14 14:24:57 | 显示全部楼层
eric2013 发表于 2023-7-6 08:49
这个地址是多少,看不太清楚

感谢硬汉哥,问题解决了。
就是这段数据有问题,把芯片flash全擦了,重新烧录,这段地址的数据就正常,程序也可以正常执行了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 01:07 , Processed in 0.174879 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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