硬汉嵌入式论坛

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

[技术讨论] APP跳转Bootloader失败问题

[复制链接]

14

主题

13

回帖

55

积分

初级会员

积分
55
发表于 2024-12-27 10:49:44 | 显示全部楼层 |阅读模式
本帖最后由 geryznk 于 2024-12-27 10:53 编辑

APP部分代码使用cubeide编译的,IAP部分代码使用IAR编译的,IAP可以正常跳转到APP端。但是在使用 __NVIC_SystemReset复位跳转进入IAP时会无法运行。下载进入后CUBEIDE会弹出一个Break at address "0x8001f88" with no debug information available, or outside of program code.

通过查找原因发现,IAP工程中0x8000004存放复位指针的地址和上述CUBEIDE提示的地址基本一致(会差几个值),然后根据0x8000004存放的地址跳转过去看到指到了无代码区,就是全是0xffff。
IAP最大区域规划为0x8000000-0x8004000。上述现象存在与在IAR中设置代码区域为0x8000000-0x8002FF7时,当在IAR中设置代码区域为0x8000000-0x8003FF7时,可正常运行,但是CUBEIDE弹出来的提示依旧存在。


1735267944421_1CB57A26-7EF2-4ac8-A9FC-AE2837D0F1B0.png
iwEcAqNwbmcDAQTRAfAFcAaww6LFXV5XKcUHUL0MAUgFAQfSTgDhswgACaJpbQoAC9EUBQ.png_720x720q90.jpg iwEdAqNwbmcDAQTRAggF0QCrBrDPjwgQ2W_H1QdQvQwBSAUAB9JOAOGzCAAJomltCgAL0S8v.png_720.jpg
上述图片是截取的一些截图,第一个就是CUBEIDE的提示,后面是IAR调试查看的截图,CUBEIDE提示的地址和图片上地址差别大是由于CUBEIDE截图时IAP使用的是可以正常运行版即IAR设置了0x8000000-0x8003FF7
1735267912000_211B2BD7-7A4B-482a-9C86-463D095604A0.png
更改部分如上。求大佬解释这是什么原因,如何解决。由于项目原因,0x8003000-0x8004000需要保留,因此最好IAP区域设置在0x8000000-0x8002FF7。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-27 16:07:35 | 显示全部楼层
BOOT程序里面什么都不做,main函数里面仅一条语句,直接跳转APP,这种清空下,你的BOOT正常不
回复

使用道具 举报

14

主题

13

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2024-12-30 09:19:46 | 显示全部楼层
eric2013 发表于 2024-12-27 16:07
BOOT程序里面什么都不做,main函数里面仅一条语句,直接跳转APP,这种清空下,你的BOOT正常不

这种情况下是正常的,因为我试过把while循环里面接受升级程序的处理注释掉以后BOOT是正常的,这个时候看复位指针那个地方就是好的,没有在无代码区。注释去掉以后就往下到无代码区了。
回复

使用道具 举报

14

主题

13

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2024-12-31 11:48:03 | 显示全部楼层
eric2013 发表于 2024-12-27 16:07
BOOT程序里面什么都不做,main函数里面仅一条语句,直接跳转APP,这种清空下,你的BOOT正常不

大佬,这种情况下是正常的话,那是什么原因导致的啊?
回复

使用道具 举报

2

主题

112

回帖

118

积分

初级会员

积分
118
发表于 2024-12-31 12:55:19 | 显示全部楼层
是不是调试的时候,设置了软断点,修改了flash内容导致的?
回复

使用道具 举报

14

主题

13

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2024-12-31 14:29:21 | 显示全部楼层
sblpp 发表于 2024-12-31 12:55
是不是调试的时候,设置了软断点,修改了flash内容导致的?

不调试的话也是这样啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2025-1-2 07:27:48 | 显示全部楼层
geryznk 发表于 2024-12-30 09:19
这种情况下是正常的,因为我试过把while循环里面接受升级程序的处理注释掉以后BOOT是正常的,这个时候看 ...
这种情况下,得逐步排查下BOOT了。

也可以考虑BOOT里面看看能做状态判断,正常的APP复位直接跳转APP运行,不知道能满足你的这种情况不
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 00:53 , Processed in 0.046534 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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