ldr r0,=|Image$$RO$$Limit| ; Get pointer to ROM data
ldr r1,=|Image$$RW$$Base| ; and RAM copy
ldr r3,=|Image$$ZI$$Base|
; Zero init base => top of initialized data
cmp r0,r1 ; Check that they are different
beq %F1
0
cmp r1,r3 ; Copy init data
ldrcc r2,[r0],#4
strcc r2,[r1],#4
bcc %B0
1
ldr r1,=|Image$$ZI$$Limit| ; Top of zero init segment
mov r2,#0
2
cmp r3,r1 ; Zero init
strcc r2,[r3],#4
bcc %B2
以上是没有使用scatter文件,如果使用了scatter文件来映射地址,那Image$$RO$$Limit。 Image$$RW$$Base,Image$$ZI$$Base,Image$$ZI$$Limit这些符合就会失效,相应的我们可以用Image$$region_name$$ZI$$Base Image$$region_name$$ZI$$Limit等等来替换,同样可以完成以上功能,
紧接着我们就可以用直接用“B ”指令跳到我们自己的c程序中,完成我们想做的事。