我就是在以下代码的前面加的:<br /> <br /> LDR r0, =|Image$$RO$$Limit| ; Get pointer to ROM data<br /> LDR r1, =|Image$$RW$$Base| ; and RAM copy<br /> LDR r3, =|Image$$ZI$$Base| <br /> <br /> ;Zero init base => top of initialised data<br /> CMP r0, r1 ; Check that they are different<br /> BEQ %F2<br />1 <br /> CMP r1, r3 ; Copy init data<br /> LDRCC r2, [r0], #4 ;--> LDRCC r2, [r0] + ADD r0, r0, #4 <br /> STRCC r2, [r1], #4 ;--> STRCC r2, [r1] + ADD r1, r1, #4<br /> BCC %B1<br />2 <br /> LDR r1, =|Image$$ZI$$Limit| ; Top of zero init segment<br /> MOV r2, #0<br />3 <br /> CMP r3, r1 ; Zero init<br /> STRCC r2, [r3], #4<br /> BCC %B3<br /> ]<br /><br />这些代码的RO-BASE:0x30200000,RW-BASE空.说明是在SDRAM中运行的.SDRAM的起始地址为:0X30000000.所以要写到FLASH中,我将加入了前面的几行代码,把FLASH中的代码复制到SDRAM中运行.就如前面所说的,写到FLASH中后,跑不起来?
|