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

本文详细介绍了uCLinux在ADI BF561 DSP上启动的过程,包括关键变量的初始化、数据段和bss段的处理等。通过分析head.s文件中的指令,解释了如何设置数据段的起始地址和bss段的结束位置。

 

快乐虾

http://blog.youkuaiyun.com/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)

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值