打印
[ZLG-ARM]

关于IAP程序与应用程序两程序模块的分散加载问题

[复制链接]
2185|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liangzisen|  楼主 | 2008-11-13 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在在原有软件上加入了IAP在线升级程序,整个工程树如下图一:
我写了个分散加载文件,希望讲IAP程序和主程序的RO,RW,ZI 段分开加载,并不产生相关性,并能产生IAP_Code和APP_Code两个BIN文件! 我先用ISP烧写IAP_Code,然后通过IAP_Code中的升级功能,在线下载APP_Code.
但每次我一有改动APP_CODE模块程序时,将改动后的APP_CODE在线下载后,CPU工作出现问题,死机!!
我的问题如下: 
1、这样写分散加载文件,产生的两个BIN中的R0,RW,ZI等会有相关联吗???
2、系统初始化环境的顺序是怎样的??如C环境,RW,ZI段等!  
IAP_LOAD 0x00000000
{
          IAP_Code 0x00000000 
        {      
             Startup.o (vectors, +First) 
              * (+RO)
        }
        IAP_RAM 0x40000000 0x600    ;512B
        {         
            * (+RW,+ZI)  
          }     
}
APP_LOAD 0x00002000   
{
       APP_Code 0x00002000          
       {    
           APP_startup.o (vectors1, +First)    
        App.o(+RO)  
        Uart0.o (+RO) 
        dataflash.o(+RO)
        LED_disp.o(+RO)
        SysInit.o(+RO) 
        ds1302.o(+RO)  
    }  
    APP_RAM 0x40000600      
    {
        Startup.o (MyStacks) 
        App.o(+RW,+ZI)  
        dataflash.o(+RW,+ZI)
        Uart0.o (+RW,+ZI)
        LED_disp.o(+RW,+ZI)
        SysInit.o(+RW,+ZI) 
        ds1302.o(+RW,+ZI)
    }
    HEAP +0 UNINIT
    {
        Startup.o (Heap)
    }
    STACKS 0x40003000 UNINIT
    { 
           Startup.o (Stacks)
    }
}

相关帖子

沙发
liangzisen|  楼主 | 2008-11-13 14:38 | 只看该作者

工程树图!

我程序的main函数是在IAP.C中

使用特权

评论回复
板凳
definitely| | 2009-10-19 17:07 | 只看该作者
遇到同样的问题,觉得像是堆栈的分配的问题。

使用特权

评论回复
地板
definitely| | 2009-10-19 17:08 | 只看该作者
不知楼主问题解决了没。

使用特权

评论回复
5
synics| | 2009-10-24 20:07 | 只看该作者
我也遇到相识的问题,就像楼上说的,可能是堆栈问题

使用特权

评论回复
6
synics| | 2009-10-24 20:07 | 只看该作者
不过有人说是因为时钟问题

使用特权

评论回复
7
synics| | 2009-10-24 20:08 | 只看该作者
如果你已经解决了这个问题,请及时告诉我。谢谢

使用特权

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

本版积分规则

20

主题

66

帖子

0

粉丝