GD32f130 IAP 跳转过后马上死机

[复制链接]
10155|70
laocuo1142 发表于 2024-8-9 21:23 | 显示全部楼层
堆栈指针未正确设置
flycamelaaa 发表于 2024-8-9 23:00 | 显示全部楼层
如果应用程序的时钟和外设配置与IAP环境不兼容,或者配置过程中存在错误,也可能导致死机。
powerantone 发表于 2024-8-10 10:23 | 显示全部楼层
IAP跳转代码或应用程序代码中可能存在逻辑错误,导致跳转后无法正常运行。
两只袜子 发表于 2024-8-10 12:46 | 显示全部楼层
在跳转前,从新的应用程序的起始地址处读取堆栈指针的值,并将其设置到MSP寄存器中。
jcky001 发表于 2024-8-10 16:56 | 显示全部楼层
检查硬件连接和电源稳定性
stormwind123 发表于 2024-8-10 20:00 | 显示全部楼层
硬件连接错误、电源不稳定或外部干扰等也可能导致MCU在IAP跳转后死机。
probedog 发表于 2024-8-10 22:03 | 显示全部楼层
检查并更新中断向量表地址
cr315 发表于 2024-8-11 20:00 | 显示全部楼层
在IAP中设置跳转标志,并通过复位操作跳转到APP。这种方法可以确保运行环境变得很干净,避免由于之前状态未清除而导致的问题。复位后,在HAL_Init()之后、外设初始化之前读取跳转标志,并根据需要跳转到APP。
febgxu 发表于 2024-8-13 07:54 | 显示全部楼层
没有逻辑错误或无限循环。检查是否有非法的内存访问或指针操作。
caigang13 发表于 2024-8-13 08:06 来自手机 | 显示全部楼层
这种情况大概率是中断向量表有问题。
wilhelmina2 发表于 2024-8-13 08:40 | 显示全部楼层
在IAP跳转后,如果中断向量表(VTOR)的地址没有正确更新到新的应用程序的起始地址,那么当中断发生时,处理器可能会跳转到错误的地址,导致死机。
abotomson 发表于 2024-8-13 10:12 | 显示全部楼层
是否有内存地址冲突,例如DMA通道、外设寄存器等。
uiint 发表于 2024-8-13 11:18 | 显示全部楼层
新程序的堆栈设置是否足够大,以防止堆栈溢出导致死机
qiufengsd 发表于 2024-8-13 12:56 | 显示全部楼层
如果在跳转过程中不需要处理中断或接收数据,可以关闭这些功能以避免潜在的干扰和错误。
ingramward 发表于 2024-8-13 14:30 | 显示全部楼层
检查是否有未处理的异常或错误,导致跳转失败。
iyoum 发表于 2024-8-13 16:05 | 显示全部楼层
在跳转到IAP代码时有足够的堆栈空间。如果堆栈溢出,可能会导致程序异常。
saservice 发表于 2024-8-13 17:42 | 显示全部楼层
检查堆栈设置和中断向量表的配置。
mollylawrence 发表于 2024-8-13 19:18 | 显示全部楼层
MCU的启动模式设置正确,没有因为启动模式设置错误而导致程序跳转到错误的位置。
alvpeg 发表于 2024-8-13 20:54 | 显示全部楼层
有足够的堆栈空间,防止因堆栈溢出导致的死机。
maudlu 发表于 2024-8-13 22:28 | 显示全部楼层
如果中断向量表没有被更新,可能会导致中断无法正常处理,从而引起死机。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部