head.s分析(16):取_rambase和_ramstart的值

快乐虾

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

[email protected]

本文适用于

ADI bf561 DSP

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

Visual DSP++ 5.0(update 5)

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

p1.l = __rambase;

p1.h = __rambase;

r0.l = __sdata;

r0.h = __sdata;

[p1] = r0;

p1.l = __ramstart;

p1.h = __ramstart;

p3.l = ___bss_stop;

p3.h = ___bss_stop;

r1 = p3;

[p1] = r1;

在这里,__rambase__ramstart是在head.s中定义的两个全局变量:

__rambase:

.long 0

__rambase.end:

__ramstart:

.long 0

__ramstart.end:

__sdata__bss_stop则是vmlinux.lds.s中定义的符号:

.data :

{

/* make sure the init_task is aligned to the

* kernel thread size so we can locate the kernel

* stack properly and quickly.

*/

__sdata = .;

……………..

}

__sdata表示了数据段的开始。

.bss :

{

. = ALIGN(4);

___bss_start = .;

*(.bss .bss.*)

*(COMMON)

. = ALIGN(4);

___bss_stop = .;

__end = .;

}

__bss_stop指向了bss段的结束位置,这也是整个uclinux内核结束的位置。

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)

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

head.s分析(14)L2空间清0(2009-01-20)

head.s分析(15):复制u-boot传递的参数(2009-01-20)

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