本帖最后由 gdygn007 于 2022-7-21 17:29 编辑
概述:
某客户由于版权问题,不能使用Keil或IAR进行开发,只能使用STM32CubeIDE进行开发。在调试APM32F030RCT6时遇到boot跳转APP不成功问题。
发了他们boot和APP的测试源码需要帮忙进行调试。
前期准备:
代码调试前需要准备调试硬件以及开发环境的搭建
序号
| 工具名称
| 功能
| 备注
| 1
| APM32F030R8-MINIBOAR V1.0
| demo板
| 换上APM32F030RCT6后,PF7引脚要接到VDD
| 2
| STM32CubeIDE
| 软件开发环境
| | 3
| Jlik-ARM
| 调试器
| | 4
| J-Flash 7.64e
| 下载软件
| |
测试步骤:
1、IDE配置-编译后生成bin文件,如图一所示。
2、例程中boot和APP通过LED闪烁频率不同,来判断是否成功跳转,boot使用慢闪方式,APP使用快闪方式。
查找demo原理图,LED3引脚对应PB7,图二所示。
3、使用STM32CubeIDE编译boot和APP(无地址偏移)分别使用J-Flash下载到Demo,验证两个源代码的LED是否都能正常运行。
4、在boot增加跳转APP的指令,如图三所示。
5、在APP中增加地址偏移设置和中断向量表更新,如图四所示。
6、编译后使用J-Flash下载验证,两个bin文件下载后,使用读回操作,确保文件都下载并且内容无误,如五所示。
7、按下Demo板的Reset按键重启MCU,发现一直无法跳转到APP。
问题解决:
在boot源代码中跳转APP前增加RCC解初始化函数,重新下载,发现boot可以正常跳转了。
|