完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
IAP 跳转APP 开始可以,但如果从APP跳回IAP后,再跳到APP失败。
我是按照 下面ST官方文档来的: AN4657 Application note STM32 in-application programming (IAP) using the USART code就是下面的: ----------------- JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4); JumpToApplication = (pFunction) JumpAddress; /* Initialize user application's Stack Pointer */ __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS); JumpToApplication(); ----------------- 请问为什么第一次可以从IAP跳到APP,第二次如果是从APP跳到IAP,那么就不可能再次跳到APP了呢? 谢谢! |
|
相关推荐
1个回答
|
|
以下是一些可能的原因和相应的解决方案:
1. **栈指针(Stack Pointer)问题**: 在跳转回APP之前,确保您已经正确地恢复了APP的栈指针。如果栈指针没有正确设置,可能会导致跳转失败。 2. **返回地址问题**: 在从APP跳回IAP时,确保您已经正确地保存了返回地址。在跳回APP时,使用这个返回地址进行跳转。 3. **中断和异常处理**: 在进行IAP操作时,确保您已经正确地处理了中断和异常。如果在跳转过程中发生了中断或异常,可能会导致跳转失败。 4. **内存问题**: 确保在IAP和APP之间共享的内存区域没有被覆盖或损坏。如果共享内存区域出现问题,可能会导致跳转失败。 5. **IAP和APP的代码兼容性**: 确保IAP和APP的代码是兼容的,特别是在寄存器和内存使用方面。如果存在不兼容的地方,可能会导致跳转失败。 6. **硬件问题**: 检查您的硬件连接和配置,确保没有硬件问题导致跳转失败。 为了更具体地解决问题,您可以尝试以下步骤: 1. **调试**: 使用调试器逐步跟踪IAP和APP之间的跳转过程,查看是否有任何异常行为。 2. **日志记录**: 在IAP和APP的代码中添加日志记录,以便在跳转过程中记录关键信息,如寄存器值、内存地址等。 3. **简化问题**: 尝试简化您的IAP和APP代码,只保留跳转相关的部分,然后逐步添加其他功能,以找到导致问题的具体原因。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1885 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1663 浏览 1 评论
1149 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
763 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1965浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
790浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
616浏览 3评论
631浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
594浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-14 12:49 , Processed in 0.976534 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号