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