[ZLG-ARM] 关于IAP程序与应用程序两程序模块的分散加载问题

[复制链接]
 楼主| liangzisen 发表于 2008-11-13 14:35 | 显示全部楼层 |阅读模式
我现在在原有软件上加入了IAP在线升级程序,整个工程树如下图一:<br />我写了个分散加载文件,希望讲IAP程序和主程序的RO,RW,ZI&nbsp;段分开加载,并不产生相关性,并能产生IAP_Code和APP_Code两个BIN文件!&nbsp;我先用ISP烧写IAP_Code,然后通过IAP_Code中的升级功能,在线下载APP_Code.<br />但每次我一有改动APP_CODE模块程序时,将改动后的APP_CODE在线下载后,CPU工作出现问题,死机!!<br />我的问题如下:&nbsp;<br />1、这样写分散加载文件,产生的两个BIN中的R0,RW,ZI等会有相关联吗???<br />2、系统初始化环境的顺序是怎样的??如C环境,RW,ZI段等!&nbsp;&nbsp;<br />IAP_LOAD&nbsp;0x00000000<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IAP_Code&nbsp;0x00000000&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(vectors,&nbsp;+First)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IAP_RAM&nbsp;0x40000000&nbsp;0x600&nbsp;&nbsp;&nbsp;&nbsp;;512B<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RW,+ZI)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />APP_LOAD&nbsp;0x00002000&nbsp;&nbsp;&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP_Code&nbsp;0x00002000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP_startup.o&nbsp;(vectors1,&nbsp;+First)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;App.o(+RO)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uart0.o&nbsp;(+RO)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataflash.o(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED_disp.o(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysInit.o(+RO)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds1302.o(+RO)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;APP_RAM&nbsp;0x40000600&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(MyStacks)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;App.o(+RW,+ZI)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataflash.o(+RW,+ZI)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uart0.o&nbsp;(+RW,+ZI)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED_disp.o(+RW,+ZI)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysInit.o(+RW,+ZI)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds1302.o(+RW,+ZI)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;HEAP&nbsp;+0&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(Heap)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;STACKS&nbsp;0x40003000&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(Stacks)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}
 楼主| liangzisen 发表于 2008-11-13 14:38 | 显示全部楼层

工程树图!

我程序的main函数是在IAP.C中
definitely 发表于 2009-10-19 17:07 | 显示全部楼层
遇到同样的问题,觉得像是堆栈的分配的问题。
definitely 发表于 2009-10-19 17:08 | 显示全部楼层
不知楼主问题解决了没。
synics 发表于 2009-10-24 20:07 | 显示全部楼层
我也遇到相识的问题,就像楼上说的,可能是堆栈问题
synics 发表于 2009-10-24 20:07 | 显示全部楼层
不过有人说是因为时钟问题
synics 发表于 2009-10-24 20:08 | 显示全部楼层
如果你已经解决了这个问题,请及时告诉我。谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

20

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部