我在用“NUCLEO-L073RZ”开发板调试IAP功能。 Bootloader定义在0x8000000开始的16KB地址范围,Application定义在0x8004000开始的Flash地址。 已经通过GUI和Bootloader,将一个LED闪烁功能的Application下载到了MCU的0x8004000开始的Flash地址(通过软件已经读出Flash数据) Bootloader程序里在最后跳转到Application的程序调用之后,发现程序已经跳出了Bootloader,但是Application并没有运行起来; 我后来又尝试了直接软件复位MCU(因为我的Bootloader程序初始化时会判断,如果Application的Flash地址有数据,则会跳转到Application去),Application也没有运行起来; 但是,最后当我按了复位按键之后,Application就运行起来了! 百思不得其解!我把源代码放到了百度网盘,有兴趣的朋友请帮忙一起分析一下: Bootloader: https://pan.baidu.com/s/1uUU7lItNWMpmK_DJ9cknDg Application: https://pan.baidu.com/s/16N-lUtGi0Bx0E98Uf5nmsA 谢谢大家! |
STM32L011D4芯片用SWD无法下载程序
求助:STM32L0系列标准库哪里下?
STM32L051低温时LPUART串口波特率异常
STM32L051单片机ADC如何彻底关闭?
STM32L051C8进入低功耗模式电流偏大
STM32L052C8T6通过I2C模拟读16位数
STM32L0的VLCD外接5V会有问题吗
求助!!使用STM32L073 IO口模拟IIC接口读写AT24CM01 程序不停...
STM32L072RB写Bank2 EEPROM不响应中断
STM32L031无法进入boot
多谢回复!
APP的中断向量地址有重新设置的:
#define VECT_TAB_OFFSET 0x4000U
另外,硬件复位之后APP能够正常运行,也说明APP实际已经正确地进行了升级。
试过了,在Bootloader跳转之前关中断__disable_irq(),在Application初始化时再开中断__enable_irq();也不行。有时间可以帮忙看看源代码吗?我附了百度网盘的链接。多谢了!
是啊,我刚从SiliconLabs切到ST,遇到各种各样的问题,不过好在大部分都搞定了,现在就差在线升级最后跳转的这一步了
评分
查看全部评分
这些不用的中断我根本都没开启过,何来关闭之说?
麻烦有空帮忙看看我的源代码,多谢了!
文件太大了,上传不了。百度网盘的链接都不行吗
\STM32Cube_FW_L0_V1.10.0\Projects\STM32L073Z_EVAL\Applications\IAP\IAP_Main\EWARM
评分
查看全部评分
我就是参考了官方的说明和例程来做的哈。可以帮忙看看源代码吗?
可以加我QQ吗?我QQ传给你。
289846318