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

来源:互联网 发布:ubuntu 修改网络配置 编辑:程序博客网 时间:2024/05/23 15:40

 

快乐虾

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

lights@hb165.com

 

本文适用于

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)

 

 

 

 

 

 

原创粉丝点击