STM32F10X IAP跳转到APP后程序不执行

2019-08-13 23:28发布

本帖最后由 sucaptain 于 2016-10-11 12:06 编辑

使用STM32F103RB  做IAP实验,程序从IAP跳到APP后并没有执行。
APP程序起始地址0x08002800

APP的map文件中显示复位中断函数入口0x08002b96, 栈顶地址0x20000998


在iap的BOOT_JumpToApplication函数中可以看到,跳转的地址和栈顶地址和设置的一样,这能说明flash数据写入是正确的吗?


APP程序初始化,app程序是之前的工程能用的,跳转之后没有任何反应,是哪儿没弄对了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
sucaptain
1楼-- · 2019-08-14 01:42
 精彩回答 2  元偷偷看……
山峰雪狼
2楼-- · 2019-08-14 04:08
查查app程序的向量表。
sucaptain
3楼-- · 2019-08-14 09:37
山峰雪狼 发表于 2016-10-11 13:12
查查app程序的向量表。

怎么查  从flash里面把数据读出来查吗  怎么知道对不对呢?
skygz
4楼-- · 2019-08-14 11:50
1.不要 用NVIC_SetVectorTable改向量表, 有时无效的,  直接在system_stm32f10x.c里#define VECT_TAB_OFFSET   0x0改

2. 如果BOOT里关了中断,  APP里要__enable_irq();
sucaptain
5楼-- · 2019-08-14 14:57
skygz 发表于 2016-10-11 14:09
1.不要 用NVIC_SetVectorTable改向量表, 有时无效的,  直接在system_stm32f10x.c里#define VECT_TAB_OFFSET ...

也不知道是不是这么回事。。。  iap程序里面初始化了TIM3 作定时器,  跳转之前必须调用TIM_DeInit(TIM3);才正常。    关定时器和初始化时钟RCC_DeInit(); 这些都不得行
密耳
6楼-- · 2019-08-14 16:37
 精彩回答 2  元偷偷看……

一周热门 更多>