ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ cmp r0, r1 /* don't reloc during debug */ beq clear_bss
这里的_TEXT_BASE的含义,前面已经说过了,那就是:
_TEXT_BASE: .word TEXT_BASE
得知,地址为_TEXT_BASE的内存中的内容,就是
u-boot-1.1.6_20100601\opt\EmbedSky\u-boot-1.1.6\board\EmbedSky\config.mk
中的:
TEXT_BASE = 0x33D00000
所以,此处就是
r1 = 0x33D00000
含义很简单,就是比较r0和r1。而
r0 = 0x0
所以不相等
因此beq发现两者不相等,就不会去跳转到clear_bss,不会去执行对应的将bss段清零的动作了。
Search Highlighter (On/Off)