U-Boot的加载地址分析

我们通过board/smdk2410/config.mk来分析运行时的内存分布情况

board/smdk2410/config.mk:

    #

# SMDK2410 has 1 bank of 64 MB DRAM

#

# 3000'0000 to 3400'0000

#

# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000

# optionally with a ramdisk at 3080'0000

#

# we load ourself to 33F8'0000

#

# download area is 3300'0000

#

   

TEXT_BASE = 0x33F80000

在顶层config.mk中:

ifdef BOARD   #指定特定板子的镜像连接时的内存基地址,相当重要!

sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules,即/u-boot-1.1.6/board/smdk2410/config.mk
endif

 

从默认的u-boot代码及注释可知,smdk2410memory64M, 接在了nGCS6上即0x3000’00000x3400’0000的区域上,而准备把linux内核放在0x3000’8000的位置,如果有ramdisk的话则放在0x3080’0000的位置,而把u-boot自己放在0x33F8’0000的位置。TEXT_BASE在启动的第一阶段中的重定位的时候会用到。最终把linux内核成功引导后的内存分布情况如下:



事实上查看smdk2410.h下的定义也可以看出来

 

====

http://blog.sina.com.cn/s/blog_70ef2ee90100zihv.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值