各位,下面这段程序大家肯定都熟悉吧,可是我却困惑着
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 strcc r2, [r3], #4 bcc %B2
我单步执行了,得到如下地址
|Image$$RO$$Base|=0c10,0000,
|Image$$RO$$Limit|=0c10,84b0,
|Image$$RW$$Base|=0c20,0000
|Image$$RW$$Limit|=0c20,0ea4
|Image$$ZI$$Base|=0c20,05d4
|Image$$ZI$$Limit|=0c20,0ea4,
我用的是SDT编译,相关设置为
Base of Image中,Read-Only:0c00,0000;Read-Write:0c40,0000
各位侠兄侠弟,侠姐侠妹,小虾请教:以上变量是怎么得到的,我苦思不得,12小时未眠(昨天白天)
不胜感激!!!
hummingbird的信箱arm7tdmi@sohu.com
[align=right][color=#000066][此贴子已经被作者于2004-9-10 09:07:23编辑过][/color][/align]