[STM32F1] 关于IAP成功后,应用程序运行一半出错的问题。

[复制链接]
2127|8
 楼主| caijize 发表于 2013-12-16 10:40 | 显示全部楼层 |阅读模式
本帖最后由 caijize 于 2013-12-16 10:41 编辑

最近需要给产品新加个“空中升级”的功能,自己长写了个简单的程序来测试,下载运行都成功了,但应用程序运行到一半却没反应,请高手们帮我看一下,问题可能出在哪里。
应用程序主函数如下:


int main(void){
        u32 i = 0;
        NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);
        SystemInit();
        LED_Init();
        while(1){                               // (1)
                LED_SetRedOn();         
                LED_SetGreenOff();
                while(i<0x2ff4){                //(2)
                        if(i>0x2f4){    //(4)
                                LED_SetGreenOn();           
                        //        LED_SetRedOff();
                        }
                        i++;        
                }                        
                LED_SetGreenOff();
                LED_SetRedOff();         
                while(i>0){            //(3)
                        i--;
                }
        }
}



经过多次测试,程序一开始能正常运行点亮红灯跟绿灯,但如果第二个WHILE循环条件大于0x2f4的话循环跳不出来,同样如果条件(4)的值大于0x2f4的话绿灯不被点亮。而只要把循环(2)的条件设为小于0x2f4的话循环就能跳出,把灯都灭了,但后面的循环就跳不出来。

我已经按照网上说的将应用程序的起始地址设成了存放的地址,偏移地址VECT_TAB_OFFSET也已经设了,是不是还有其它什么遗漏的地方呢?
QQ截图20131216103608.png QQ截图20131216103523.png
先谢谢各位大侠们指教!!















副BAN主就是我 发表于 2013-12-16 11:37 | 显示全部楼层
1,这个程序在修改flash地址和nvic地址之前是没问题的吧?

2,升级之后监测过变量i的值的变化吗?有屏幕的话最好,没屏幕的找特殊的flash地址写入i值,看看为什么跳不出循环。
ffeige1984 发表于 2013-12-16 18:23 | 显示全部楼层
空中升级这个功能我们做过:
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000) 别人把偏移量改为0x2000是因为别人前 0x2000放有BOOT
cjhk 发表于 2013-12-16 19:09 | 显示全部楼层
空中升级  以前公司做过   感觉挺方便的   楼主   比较有意思
 楼主| caijize 发表于 2013-12-16 19:26 | 显示全部楼层
谢谢Michael大神,果然是中断引起的问题,在Bootloader里有用了SysTick中断,而应用程序里面没有,所以引起了错误。我在应用程序里也打开了SysTick中断后就没有问题了。
max_v 发表于 2013-12-16 19:58 | 显示全部楼层
ffeige1984 发表于 2013-12-16 18:23
空中升级这个功能我们做过:
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000) 别人把偏移量改为0x2000是因 ...

空中升级用啥无线模块?
ffeige1984 发表于 2013-12-16 21:26 | 显示全部楼层
我们是用GPRS,想这位老兄用的IAP我们只是下载程序
 楼主| caijize 发表于 2013-12-17 10:52 | 显示全部楼层
ffeige1984 发表于 2013-12-16 21:26
我们是用GPRS,想这位老兄用的IAP我们只是下载程序

嗯,我也是打算用GPRS升级~~
ffeige1984 发表于 2013-12-17 10:58 | 显示全部楼层
协议做好行,在加上校验 基本上就没什么问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

20

帖子

0

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