本帖最后由 PaulRambo 于 2018-1-24 16:51 编辑 大家好!我最近在调试STM32L476RG的IAP功能,参考了官方《AN4767-STM32L_Dualbank_flash_memory_fieldupgrade》,并将代码烧录到了BANK1中。我想要做的效果是,BANK1中使用选项1载入另外一段程序(APP),烧写到BANK2中运行。目前已经测试通过官方代码的内容。现遇到的问题如下: 目前已经通过选项1载入了代码,烧写成功,但是无法启动BANK2中的代码。配置及实验过程如下: 运行官方代码,(稍作修改,不影响原有功能) 选项1烧写代码 烧写成功 选项6切换bank,卡死,重启无响应(猜测应该是卡在了BANK2启动入口) 以下是我代码的配置:首地址设置为0x8080000,代码长度为0x80000,在主函数加入了中断向量表偏移程序段。 以上是我现在的实验结果。请大家帮我看下哪里出了问题?为何无法启动? |
问个关于STM32L4 SPI读数据,前3个字节永远是0
STM32L432 2个SPI同时使用的问题
STM32L476 ADC采集内部温度传感器电压值
STM32L431通过串口下载程序问题
ST的hal库有问题手头有STM32L4或STM32F7的帮忙测试DMA SD卡
STM32L476-Discovery开发板如何进行串口固件烧写
大家有用到STM32L433的CAN通信的吗?
STM32L4 FFT 自带arm_math.h编译不成功
想问一个关于STM32L475 flash的问题
谁有STM32L476的编程手册,传一个,感谢
If the code in both banks is not identical (or at least the section prior to the bank switch point
is not identical) then the execution is most likely to crash.
将跳转放到工程最前端,保证BANK1的跳转与BANK2跳转之前的语句相同identical,后面代码可以差异化,这样就可以进行两个bank1之间的跳转了。
评分
查看全部评分
If the code in both banks is not identical (or at least the section prior to the bank switch point
is not identical) then the execution is most likely to crash.
将BANK1与BANK2跳转语句之前的代码写成相同的,就可以正常运行了。
没这么玩过,学习一下,下次遇到了能省点弯路