导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[yanghuyue]IAP在线升级,最后一步有点问题,请教



No.7573
作者:yanghuyue
邮件:yanghuyue781214@sohu.com
ID:27591
登陆:5次
文章数:1篇
最后登陆IP:222.35.122.178
最后登陆:2007/7/19 15:05:36
注册:2004/11/11 21:27:34
财富:109
发帖时间:2007/7/19 15:05:36
发贴者IP:222.35.122.178
标题:yanghuyue:IAP在线升级,最后一步有点问题,请教
摘要:No.7573IAP在线升级,最后一步有点问题,请教 我想用IAP在程序运行中升级程序
分散加载文件如下:
ROM_LOAD 0x0
   这个运行区中的文件是独立的。用于升级程序,只有在main文件中调用了main_user文件中的main_user涵数,这里面的文件是不会动的。生成的HEX文件为    ROM_EXEC.hex

ROM_LOAD1 0x00004000 
   这个运行区是我的应用程序,这里面的程序要改变,但我的main_user文件不会改变。生成的HEX文件为    ROM_EXEC1.hex
  
   我通过改变ROM_LOAD1 0x00004000 文件内容。用ROM_LOAD 0x0中的程序升级ROM_LOAD1 0x00004000 区。
  现在我改别ROM_LOAD1 中的其他文件(此时ROM_LOAD 0x0区的文件没有动),编译后ROM_EXEC1.hex和ROM_EXEC.hex都发生变化。这样就不能用用ROM_LOAD 0x0中的程序升级ROM_LOAD1 0x00004000 区。因为ROM_EXEC1.hex和ROM_EXEC.hex都发生变化。
请教:
1:为什么我没有改变ROM_LOAD 0x0的内容为何ROM_EXEC.hex的内容发生变化?2:如何实现任意改变ROM_LOAD1 0x00004000 区内容而ROM_LOAD 0x0内容不变:
附:
ROM_LOAD 0x0
{
    ROM_EXEC 0x00000000 0x00004000
    {
        Startup.o (vectors, +First)
        CFlash_Fix.o (+RO)   
        CIap.o(+RO)
        CGPIOOUT_Fix.o (+RO)
        CGPIOIN_Fix.o (+RO)
        CGPIOINOUT_Fix.o (+RO)
        CSMISPI_Fix.o(+Ro)
        main.o(+RO)
    }
 }

ROM_LOAD1 0x00004000 
{
    ROM_EXEC1 +0 FIXED
    {
     main_user.o(+RO)
        * (+RO)
    }
    IRAM 0x40000000
    {
        Startup.o (MyStacks)
        * (+RW,+ZI)
    }

    HEAP +0 UNINIT
    {
        Startup.o (Heap)
    }

    STACKS 0x40008000 UNINIT
    {
        Startup.o (Stacks)
    }
}
//main在ROM_LOAD 0x0区运行
 int ma ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:29毫秒 最大:78531毫秒 查询6次