打印
[STM32F1]

IAP不跳转到APP的问题求解

[复制链接]
1532|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wofei1314|  楼主 | 2015-10-26 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
App, iap, IO, se, TI
芯片STM32F103RBT6,APP起始地址:0x8005000
IAP程序擦除了 0x800500以后的Flash区域,擦除正常,烧写正常


APP,keil设置,Flash起始地址设了 0x8005000,选择了生产 Bin文件
APP的main函数一开始就设置了 SCB->VTOR = FLASH_BASE | 0x5000;


然后IAP程序中到了这个函数,直接走的是else....  
//执行用户程序
void ExecuteUserPro(void)
{
    //判断用户是否已经下载程序,因为正常情况下此地址是栈地址。
    if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)                //若没有这一句的话,即使没有下载程序也会进入而导致跑飞。
    {
        debugOUT("Execute user Program !");
        //跳转至用户代码
        JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
        Jump_To_Application = (pFunction) JumpAddress;


        //初始化用户程序的堆栈指针
        __set_MSP(*(__IO uint32_t*) ApplicationAddress);
        Jump_To_Application();
    }
    else
    {
        debugOUT("no user Program..");
        debugOUT("Restart the device and");
        BSP_TimClose(TIM_3);//停止闪烁
        IO_RESET(eLED_1);//常亮LED
        while(1)
        {
        }
    }
}




何故?求解!
沙发
zchong| | 2015-10-26 13:34 | 只看该作者
1、if 和else就不需要问了,自己看一下条件是否满足以及为什么就可以了;
2、bootloader程序如果使用了中断,跳转到app前需要关闭。

使用特权

评论回复
板凳
wofei1314|  楼主 | 2015-10-26 13:40 | 只看该作者
zchong 发表于 2015-10-26 13:34
1、if 和else就不需要问了,自己看一下条件是否满足以及为什么就可以了;
2、bootloader程序如果使用了中断 ...

就是想问哪里没考虑到,据网友说,不关中断,可能后面程序不好用,但是我的程序压根不跳转....

使用特权

评论回复
地板
pigeon0411| | 2015-10-26 15:18 | 只看该作者
分散文件修改了吗?加载了吗?

使用特权

评论回复
5
zhuotuzi| | 2015-10-26 15:36 | 只看该作者
你跳转的地址是对的吗?

使用特权

评论回复
6
734774645| | 2015-10-26 16:02 | 只看该作者
应该是跳转的地址和APP地址不一致

使用特权

评论回复
7
拉克丝| | 2015-10-28 22:17 | 只看该作者
楼主搞定了吗,是不是跳转地址不对

使用特权

评论回复
8
wofei1314|  楼主 | 2016-10-22 16:04 | 只看该作者
拉克丝 发表于 2015-10-28 22:17
楼主搞定了吗,是不是跳转地址不对

搞定了,写的数据不对

使用特权

评论回复
9
dongnanxibei| | 2016-10-22 18:10 | 只看该作者
wofei1314 发表于 2016-10-22 16:04
搞定了,写的数据不对

什么情况,什么数据不对,我以为你要公布一下详情呢

使用特权

评论回复
10
yiyigirl2014| | 2016-10-22 21:37 | 只看该作者
火速围观,这个技术貌似很有用,等楼主讲经。

使用特权

评论回复
11
wofei1314|  楼主 | 2016-10-23 14:21 | 只看该作者
yiyigirl2014 发表于 2016-10-22 21:37
火速围观,这个技术貌似很有用,等楼主讲经。

其实没啥,照着ST的Demo一步一步来就行了,我那个是因为写在Flash里的数据不对....

使用特权

评论回复
12
_gege| | 2016-10-23 16:15 | 只看该作者
bootloader程序使用了中断了吗?如果使用了中断,跳转到app前需要关闭。

使用特权

评论回复
13
yiyigirl2014| | 2016-10-26 17:12 | 只看该作者
多些楼主提醒,以后多看看官方出的技术手册。

使用特权

评论回复
14
豆腐块| | 2016-10-26 21:50 | 只看该作者
什么数据不对

使用特权

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

本版积分规则

3

主题

68

帖子

2

粉丝