head.s分析(12):bss段清0

快乐虾

http://blog.csdn.net/lights_joy/

[email protected]

本文适用于

ADI bf561 DSP

uclinux-2008r1.5-rc3 (移植到vdsp5)

Visual DSP++ 5.0(update 5)

欢迎转载,但请保留作者信息

/* Code update for BSS size == 0

* Zero out the bss region.

*/

p1.l = ___bss_start;

p1.h = ___bss_start;

p2.l = ___bss_stop;

p2.h = ___bss_stop;

r0 = 0;

p2 -= p1;

lsetup (.L_clear_bss, .L_clear_bss) lc0 = p2;

.L_clear_bss:

B[p1++] = r0;

这里的两个符号__bss_start__bss_stop都出现在vmlinux.lds.s中,定义了bss段的起始位置和结束位置,因而这一段代码就是很简单地将bss段清0

.bss :

{

. = ALIGN(4);

___bss_start = .;

*(.bss .bss.*)

*(COMMON)

. = ALIGN(4);

___bss_stop = .;

__end = .;

}

1 参考资料

head.s分析(1):保存u-boot传递过来的指针(2009-1-19)

head.s分析(2)SYSCFG配置(2009-1-19)

head.s分析(3):数据及指针寄存器清0(2009-1-19)

head.s分析(4):关闭CACHE(2009-01-19)

head.s分析(5):关闭串口(2009-01-19)

head.s分析(6):栈指针初始化(2009-01-19)

head.s分析(7)init_early_exception_vectors(2009-1-19)

head.s分析(8):配置PLLSDRAM(2009-01-20)

head.s分析(9)EBIU配置(2009-01-20)

head.s分析(10):转入中断15(2009-01-20)

你可能感兴趣的:(.net,cache,Blog)