[STM32F0] 求教,stm32030r8的APP跳转到IAP后再次跳回APP后,APP中断不能。

[复制链接]
4436|11
 楼主| thebearontree 发表于 2015-2-16 11:06 | 显示全部楼层 |阅读模式
参考了AN4065,上电后从IAP跳转到APP后,正常工作。但是当从APP跳转到IAP(不更新程序)后再直接跳回APP,APP就不能中断了。是什么原因?
//                      __disable_irq();//关中断
//                        for(u8 i = 0; i < 48; i++)
//                              {
//                                VectorTable[i] = *(__IO uint32_t*)(IAP_ADDRESS + (i<<2));
//                              }
//                     
//                       RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
//                       SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_Flash );
  
      
                        /* Test if user code is programmed starting from address "APPLICATION_ADDRESS" */
                        if (((*(__IO uint32_t*)IAP_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
                          {
                            /* Jump to user application */
                            JumpAddress = *(__IO uint32_t*) (IAP_ADDRESS + 4);
                            Jump_To_Application = (pFunction) JumpAddress;
                           
                            /* Initialize user application's Stack Pointer */
                            __set_MSP(*(__IO uint32_t*) IAP_ADDRESS);
                           
                            /* Jump to application */
                            Jump_To_Application();
                          }

还有就是APP跳转到IAP时 需要重映射中断吗,很疑惑。对M0不了解,请教大家
airwill 发表于 2015-2-16 19:20 | 显示全部楼层
感觉是 NVIC 的初始化的问题.
搞IT的 发表于 2015-2-16 21:40 | 显示全部楼层
APP跳转到IAP时 需要重映射中断吗??同问。。
 楼主| thebearontree 发表于 2015-2-28 09:22 | 显示全部楼层
问题解决了,我在主程序里面里面使用了SysTick_Handler中断,跳转到IAP时没有关断。后来不使用嘀嗒中断采用定时器查询延时,跳转前关闭并清除所有中断,APP就可以跳转到IAP,超时之后再次跳回APP。

至于APP跳转IAP时是否要映射中断向量,个人觉得IAP中一般不会使用中断,无映射必要,我没有映射,可以跳转之后可以正常中断的。
zh113214 发表于 2015-2-28 15:06 | 显示全部楼层
关中断看不出有什么问题。。
墨白色雨天 发表于 2016-1-28 15:09 | 显示全部楼层
thebearontree 发表于 2015-2-28 09:22
问题解决了,我在主程序里面里面使用了SysTick_Handler中断,跳转到IAP时没有关断。后来不使用嘀嗒中断采用 ...

楼主,我想问一下,如果APP程序中使用中断,那么在跳转IAP之前,需要把所有用到的中断关闭么?
wangliuliu566 发表于 2016-1-28 15:24 | 显示全部楼层
墨白色雨天 发表于 2016-1-28 15:09
楼主,我想问一下,如果APP程序中使用中断,那么在跳转IAP之前,需要把所有用到的中断关闭么? ...

是需要的,一般关掉全局中断就可以了。
wangliuliu566 发表于 2016-1-28 15:28 | 显示全部楼层
thebearontree 发表于 2015-2-28 09:22
问题解决了,我在主程序里面里面使用了SysTick_Handler中断,跳转到IAP时没有关断。后来不使用嘀嗒中断采用 ...

我当时用的其它MCU,从APP跳到IAP时就没有重新进行中断映射,完全没问题,当时从APP跳到IAP用到一个软复位指令,跑的uCOS-II
捉虫天师 发表于 2016-1-30 10:32 | 显示全部楼层
使用了SysTick_Handler中断,跳转到IAP时没有关断
仙女山 发表于 2016-1-30 15:57 | 显示全部楼层
你的中断是怎么配置的啊
wode112233 发表于 2016-10-26 16:57 | 显示全部楼层

楼主,你的问题解决了吗、。我也遇到了这样的问题, IAP可以跳转并正常运行APP,一用中断就死机了。。。
mesutozil 发表于 2017-9-15 14:01 | 显示全部楼层
@thebearontree 你这个问题解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

48

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部