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 ......
>>返回讨论的主题
|