博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】U-Boot的加载地址分析_Detective_ALong_新浪博客
阅读量:2213 次
发布时间:2019-05-06

本文共 747 字,大约阅读时间需要 2 分钟。

我们通过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下的定义也可以看出来

你可能感兴趣的文章
JDBC的基本知识
查看>>
《Head first设计模式》学习笔记 - 适配器模式
查看>>
《Head first设计模式》学习笔记 - 单件模式
查看>>
《Head first设计模式》学习笔记 - 工厂方法模式
查看>>
《Head first设计模式》学习笔记 - 装饰者模式
查看>>
《Head first设计模式》学习笔记 - 模板方法模式
查看>>
《Head first设计模式》学习笔记 - 外观模式
查看>>
《Head first设计模式》学习笔记 - 命令模式
查看>>
《Head first设计模式》学习笔记 - 抽象工厂模式
查看>>
《Head first设计模式》学习笔记 - 观察者模式
查看>>
《Head first设计模式》学习笔记 - 策略模式
查看>>
ThreadLocal 那点事儿
查看>>
ThreadLocal 那点事儿(续集)
查看>>
阳台做成榻榻米 阳台做成书房
查看>>
深入分析java线程池的实现原理
查看>>
mybatis中"#"和"$"的区别
查看>>
Hibernate与MyBatis区别
查看>>
如何禁用Eclipse的Validating
查看>>
据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?
查看>>
SpringMVC学习笔记2
查看>>