我现在在原有软件上加入了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) } } |