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