stm32 iAP成功跳转APP 但是没有执行 正解在5楼

2019-12-17 21:29发布

本帖最后由 天涯行客 于 2014-12-4 12:37 编辑

程序所有配置都没有问题,就是不执行APP程序,不知道怎么回事啊 2014-12-04_105927.png (77.37 KB, 下载次数: 4) 下载附件 2014-12-4 11:00 上传

程序跳转代码

        if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
        {
            SerialPutString("Execute user Program ");

            JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
            Jump_To_Application = (pFunction) JumpAddress;

            __set_MSP(*(__IO uint32_t*) ApplicationAddress);
            Jump_To_Application();
        }
#define ApplicationAddress    0x8010000


我APP程序比较大 生成的BIN文件有60K左右,会是堆栈溢出的问题吗?


正解在5楼
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
64条回答
huangqi412
1楼-- · 2019-12-23 20:06
xf331785508 发表于 2015-11-24 17:16
那就要看你的APP段的程序开始后是否有重新配置中断(NVIC)寄存器,重新配置外设寄存器,有配置肯定被更新 ...

进到用户程序后,在中断向量表地址设定完成后再开中断。OK 了。

还是没懂这个,  BOOT中关闭中断后再跳转APP,在APP也没去特意开中断,似乎中断很正常。
xf331785508
2楼-- · 2019-12-23 20:55
adee4210 发表于 2015-11-24 17:17
boot中打开的中断,最好在boot中要关掉,否则在用户程序没有关掉之前就先开了全局中断,那就杯具了。 ...

本贴不就是你说的这种情况嘛!
mega1702
3楼-- · 2019-12-24 02:49
学习了,这个帖子太好了,少走好多弯路。
xf331785508
4楼-- · 2019-12-24 04:52
huangqi412 发表于 2015-11-24 17:18
进到用户程序后,在中断向量表地址设定完成后再开中断。OK 了。

还是没懂这个,  BOOT中关闭中断后再跳 ...

不管是全局中断配置代码还是部分中断配置代码,最终都是在中断相关管理的寄存器中写入一定的值,所以,对于你讲的没有特意开中断也正常,那得看中断相关管理的寄存器是否被配置了.
大笨蛋1990
5楼-- · 2019-12-24 10:03
 精彩回答 2  元偷偷看……
justdomyself
6楼-- · 2019-12-24 11:00
iap     明天试试!!

一周热门 更多>