打印
[STM32F1]

请教STM32 IAP 进入APP后运行一段时间后死机

[复制链接]
2736|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
joshuachiang|  楼主 | 2014-2-23 10:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教个问题:
1、IAP+APP下载成功,IAP运行跳转到APP后,运行正常。
2、APP串口一直外发数据,外部对APP应答后,APP死机。
3、只有APP程序从0地址下载后,运行从来没问题。
4、IAP+APP运行后一旦接收到外部串口中断数据死机。

测了2天调不出原因来,麻烦大家给看看,非常感谢!

#define INFLASH_APP_ADDRESS         (0x08008000)

void Iap_JumpToApp(void)
{
        u32 i=0;
    __disable_irq();
       
        for(i= 0; i < 32; i++)
    {
           NVIC_ClearPendingIRQ((IRQn_Type)i);
    }
   
    Jump_Address = *(vu32*)(INFLASH_APP_ADDRESS + 4);
    Jump_To_Application  = (pFunction)Jump_Address;
   
    //³ÌÐòÇøÓдúÂë
    if (((*(u32*)INFLASH_APP_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
    {
                __set_PSP(*(__IO uint32_t*) INFLASH_APP_ADDRESS);
        __set_CONTROL(0);                                                                    //Ñ¡ÔñÖ÷¶ÑÕ»Ö¸ÕëMSP
       
        __set_MSP(*(vu32*)INFLASH_APP_ADDRESS);        
        Jump_To_Application();
    }
    else
    {
            Iap_UpdateDead();
    }
}
评论
yuansvip 2019-12-24 16:17 回复TA
楼主,这个问题当年你怎么解决的啊 
沙发
zchong| | 2014-2-23 11:31 | 只看该作者
应用程序中,需要设置中断相量的便宜地址
#define VECT_TAB_OFFSET  0x00 /*!< Vector Table base offset field.
                                   This value must be a multiple of 0x200. */

使用特权

评论回复
板凳
keji1| | 2014-2-23 12:04 | 只看该作者
帮顶

使用特权

评论回复
地板
joshuachiang|  楼主 | 2014-2-23 12:29 | 只看该作者
在初始化RCC后,已经添加了  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000);
#define VECT_TAB_OFFSET   0x8000也更改,

APP还是出现串口接收数据死机,串口无数据过来一直OK。

使用特权

评论回复
5
joshuachiang|  楼主 | 2014-2-23 12:35 | 只看该作者
Time2中断也打开了,没有问题,LED灯一直工作正常。
看起来不是全部中断的问题,就是串口接收中断的问题。

使用特权

评论回复
6
菜鸟同学| | 2014-2-23 15:38 | 只看该作者
像2楼说的需要设置中断映射地址!

使用特权

评论回复
7
lnhjsdf| | 2014-2-23 17:09 | 只看该作者
帮顶

使用特权

评论回复
8
604603487| | 2014-2-23 17:45 | 只看该作者
貌似需要两个中断向量表吧,新手不懂勿喷

使用特权

评论回复
9
nienianhong| | 2014-2-23 22:10 | 只看该作者
需要两个中断向量表

使用特权

评论回复
10
anybody| | 2014-2-24 08:42 | 只看该作者
应该是楼主在跳转到应用程序前没有关掉IAP里面的串行接收中断

使用特权

评论回复
11
zhangyang86| | 2014-2-24 18:39 | 只看该作者
可以参考我们战舰的串口iap 实例

使用特权

评论回复
12
figoxwm| | 2014-4-15 10:21 | 只看该作者
nienianhong 发表于 2014-2-23 22:10
需要两个中断向量表

两个中断向量表, 请问哪里修改呢?

使用特权

评论回复
13
yuansvip| | 2019-12-24 16:19 | 只看该作者
楼主当年怎么解决的啊

使用特权

评论回复
14
香水城| | 2019-12-25 11:48 | 只看该作者
IAP应用中最常见的问题集中在  中断矢量的正确初始化、中断的处理。

下面**可以参考下:
STM32 IAP应用中的几个常见问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝