打印

LPC2136的在线升级IAP程序与应用程序独立编译问题

[复制链接]
2603|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kavka|  楼主 | 2009-9-10 13:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kavka 于 2009-9-10 14:37 编辑

我的思路是IAP+APP. IAP放在开头0-3区,MAIN函数也放在IAP中,只是MAIN里调用了应用程序APP,APP从固定地址开始。
现在遇到的问题是:启动程序IAP不修改,只要在应用程序中增加、删除一个变量或者添加一条无关紧要的语句,重新编译链接后生成一个bin格式升级文件,再通过在线升级,发现程序就跑飞了。但是修改一个变量的值却没有这种情况,可以升级成功。现在只能重新烧入启动程序才行。请教高手。
是不是分散加载文件出问题了?
ROM_LOAD 0x0
{
    SYSTEM 0x00000000   ;// 系统固件区域,起始地址:扇区0
    {
        Startup.o (vectors, +First)
        main.o(+RO)
        target.o(+RO)
        *(+RO)
    }
}
ROM_LOAD2 0x4000
{
    USER 0x4000 FIXED    ;// 用户程序区域,起始地址:扇区4
    {
        user.o (+RO, +First)
        users.o (+RO)
    }   
   
    IRAM 0x40000000
    {
        Startup.o (MyStacks)
        * (+RW,+ZI)
    }
    HEAP +0 UNINIT
    {
        Startup.o (Heap)
        
    }
    STACKS 0x40008000 UNINIT    ;for LPC2136
    {
        Startup.o (Stacks)
    }   
}
工程树图

相关帖子

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

本版积分规则

3

主题

8

帖子

1

粉丝