打印

为什么我的STR912没法实现Bank0,Bank1之间的软件切换

[复制链接]
2675|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yingxf|  楼主 | 2008-5-22 15:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么我的STR912没法实现Bank0,Bank1之间的软件切换。
我是用 Keil RealView写的程序,现在已经能够将Bank1配置成启动块,并使程序在Bank开始启动。目前我想在bank1中放了IAP实现将应用程序下在到bank0并切换回Bank0执行。可是好像无法切换,我用的跳转函数如下:
void Execute_STR9Application(void)
{
    pFunction Jump_To_Application;

    FMI->BBSR   = 0x0;
    FMI->NBBSR  = 0x6;
    FMI->BBADR  = 0x400000 >> 2;
    FMI->NBBADR = 0x0 ;     
    /* Jump to the user application and execute it */
    Jump_To_Application = (pFunction) 0x00;
    Jump_To_Application();
}
请问有谁用设计过IAP的话请指导一下具体该如何实现。是不是我上面的配置值有问题,还是有别的原因。
另外,在IAR中是用宏__ramfunc将上面的函数放在Ram中执行,不知在Keil中又该如何实现。
沙发
ST_ARM| | 2008-5-22 17:02 | 只看该作者

FMI->BBADR = 0x400000 >> 2;有错

应该为
FMI->BBADR  = 0x800000 >> 2;

使用特权

评论回复
板凳
yingxf|  楼主 | 2008-5-26 11:28 | 只看该作者

还是不行

改成FMI->BBADR  = 0x800000 >> 2;还是不行,程序执行到这就死掉了。(Bank0中有程序)

使用特权

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

本版积分规则

3

主题

5

帖子

1

粉丝