问题一: 搬运代码和scatter文件是不是只需要其一 ?<br /><br />将 ROM 中的代码和数据搬移到 RAM 中,具体程序如下。 <br />LDR r0, =|Image$$RO$$Base| /*RO 段起始地址 */ <br />LDR r1, =|Image$$RO$$Limit| /*RO 段结束地址 */ <br />LDR r2, =|Image$$RW$$Base| <br />LDR r3, =|Image$$RW$$Limit| <br />/* 分别求出需要映像的代码和数据的长度并累加,放到寄存器 R1 中 */ <br />SUB r1, r1, r0 <br />SUB r3, r3, r2 <br />ADD r1, r1, r3 <br />/* 将需要映象的代码和数据复制到 RAM 中去 */ <br />0 /* 标示符 */ <br />LDR r3, [r0], #4 <br />STR r3, [r2], #4 <br />SUBS r1, r1, #4 <br />BNE %B0 /* 如果没有复制完,跳转到 0 标示符处的汇编语句,继续复制<br /><br />问题二. 搬运代码以后,如何实现跳转到SDRAM ? <br /> 仅仅一条BL _main就可以实现吗,代码搬运以后在FLASH和SDRAM中各存在一个main函数,如何识别就是跳转到了<br />SDRAM中的main呢 <br /><br />以上这两点感觉很难理解,尤其是2410含有MMU而又不具备Remap功能,请有经验的高人指点迷津 .<br /> |