head.s分析(13):代码段前空间清0

快乐虾

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

[email protected]

本文适用于

ADI bf561 DSP

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

Visual DSP++ 5.0(update 5)

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

/* In case there is a NULL pointer reference

* Zero out region before stext

*/

p1.l = 0x0;

p1.h = 0x0;

r0.l = __stext;

r0.h = __stext;

r0 = r0 >> 1;

p2 = r0;

r0 = 0;

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

.L_clear_zero:

W[p1++] = r0;

在这里__stext是在vmlinux.lds.s中定义的一个符号,用于指示代码段的开始位置:

. = 0x1000;

.text :

{

__text = .;

_text = .;

__stext = .;

………………

}

__stext是整个内核在SDRAM中的起始位置。由于起始位置必然是以2对齐的,因而在这里直接就用word的方式写入,而没有使用byte方式写入。

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)

head.s分析(11):关闭WATCHDOG(2009-01-20)

head.s分析(12)bss段清0(2009-01-20)

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