单片机/MCU论坛
直播中

贾飞世

7年用户 1815经验值
私信 关注
[问答]

M487做ota boot跳转rtt应用失败的原因?如何解决?

使用新唐M487做ota,boot(非rtt代码)跳转rtt应用失败,进入hardfault.使用非rtt程序跳转是没问题的。请大神帮忙看看问题出哪了。

回帖(1)

郭大

2024-1-16 17:09:46
问题可能有多种原因导致,以下是一些可能的原因和解决方法:

1. 内存分配错误:如果你的OTA Boot程序和RTT应用程序使用了不同的内存分配方式,或者没有正确设置内存分配规则,可能会造成内存分配错误。解决方法是确保两个程序使用相同的内存分配规则,并且正确设置内存分配参数。

2. 中断向量表错误:如果中断向量表在跳转时没有正确更新,可能会导致无法正确处理中断,进而出现hardfault。解决方法是在跳转前,更新中断向量表。

3. 系统初始化错误:如果RTT应用程序的初始化过程中存在错误,可能导致跳转后无法正确初始化系统,进而出现hardfault。解决方法是确保RTT应用程序的初始化过程中没有错误,并且正确初始化系统。

4. 调用约定不匹配:如果OTA Boot程序和RTT应用程序使用了不同的调用约定,可能会导致跳转后无法正确执行代码,进而出现hardfault。解决方法是确保OTA Boot程序和RTT应用程序使用相同的调用约定。

请根据具体情况逐一检查以上可能的原因,并进行相应的调整和优化。如果问题仍然存在,建议详细描述问题的具体现象和相关代码,以便更准确地判断问题的来源和解决方法。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分