IMPORT |Image$$RO$$Limit|
IMPORT |Image$$RW$$Base|
IMPORT |Image$$ZI$$Base|
IMPORT |Image$$ZI$$Limit|
AREA ROWZI,CODE,READONLY
CODE32
RORWZI_init PROC ;实现初始化
EXPORT RORWZI_init
;暂时不需要拷贝RO段
;拷贝RW段
LDR R0,= |Image$$RO$$Limit| ;R0存储源RW的起始地址
LDR R1,= |Image$$RW$$Base| ;R1存储目的RW的起始地址
LDR R2,= |Image$$ZI$$Base| ;R2存储目的RW的终止地址
LDR R3,= |Image$$ZI$$Limit| ;R3存储ZI的结束地址,用于知道ZI何时结束初始化
1
;memcpy(R1,R0,R2-R1)
LDR R4,[R0],#4
STR R4,[R1],#4 ;copy四个字节
CMP R1,R2
BCC %B1
MOV R4,#0
;拷贝ZI段,清零meeset(R2,(R3-R2))
2
STRB R4,[R2],#1
CMP R2,R3
BCC %B2
3
;返回,即结束
BX LR
ENDP
END