1.4.5. clear_bss

	ldr	r1, _TEXT_BASE1		/* test if we run from flash or RAM */
	2cmp     r0, r1                  /* don't reloc during debug         */
	3beq     clear_bss
        

1

这里的_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

2

含义很简单,就是比较r0和r1。而

r0 = 0x0

r1 = 0x33D00000

所以不相等

3

因此beq发现两者不相等,就不会去跳转到clear_bss,不会去执行对应的将bss段清零的动作了。