SDRAM中的bootloade代码的物理起始地址

wbluyang 2013-10-11 02:42:25
steppingstone中的4K代码一个很重要的任务是,将nandflash的最前面区域的bootloader拷贝到SDRAM中去。那么拷贝到SDRAM中的bootloade代码的物理起始地址是多少,这个起始地址是程序员能控制的

吗?如果能,怎么控制?
...全文
2312 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lr2131 2015-02-12
  • 打赏
  • 举报
回复
steppingstone过程,起始地址应该是由硬件决定的吧。 比如说S3C6410支持多种启动方式,可以从SD卡启动,可以从Nand启动,可以从OneNand启动,不过这些启动方式,可以通过OM[3:0]那几个管脚的电平决定。
Lazylink 2015-02-11
  • 打赏
  • 举报
回复
同楼上,复制代码后,其地址又要重定位,这些也可以在代码中实现
wjx5210 2014-11-17
  • 打赏
  • 举报
回复
上面的回答都很好,初始地址都是将程序从NAND中前4KB复制到SDRAM中,然后从0开始执行。 下面是一个非常重要的概念:位置无关代码和位置相关代码;具体可以百度 然后如果一直是位置无关代码,然后就一直从0开始到4KB执行; 但是因为很多指令都是位置相关的计算和我们的程序太大了,超过4KB,地址不够了,所以才需要我们跑到DDR中,但是我们的程序还在NAND中,下面还需要作两个工作:初始化DDR和将NAND中程序放到DDR中;
kerneler_ 2014-11-04
  • 打赏
  • 举报
回复
bootloader运行地址是程序员可以控制的。 首先,要根据处理器的datasheet上的address map来确定sdram的地址空间,然后选择一个sdram上的起始地址,比如0x8000。 其次,编译bootloader时来指定程序的链接地址,这个连接器ld有参数-Ttext来指定,如-Ttext=0x8000。 像uboot,可以配置CONFIG_SYS_TEXT_BASE,其实也是在ld时添加了-Ttext。 最后,程序的链接地址 加载地址 运行地址是一致的。 配置4k代码,让其将bootloader从nand中搬运到0x8000地址上,跳转到0x8000运行就可以了。搬运到sdram其他地址是不能正常运行的。
moquan1100 2014-05-31
  • 打赏
  • 举报
回复
可以设置。 我做过一个WINCE的bootloader,在这里面是能设置bootloader的SDRAM位置和kernel的位置。 CPU启动后加载的4K代码不是到SDRAM,是到SRAM,这4k的代码会初始化SDRAM,然后将bootloader加载到SDRAM中运行。 我们的当时做的bootloader有上百k(功能比较多)。
猪头三小队长 2014-03-21
  • 打赏
  • 举报
回复
据我所知是不能设置的,提供了这个功能,既可以少了BOM,也可以用廉价的NAND取代NOR。既然是bootloader,那么它的运行地址应该是固定的,否则cpu复位之后找不到。 我所理解的这个功能的复位步骤如下: 1. 上电后首先拉住arm核的复位线,使其保持在复位态,同时将NAND的前4K读到0地址的SRAM(至少此时是0地址) 2. 释放arm核的复位线,pc指针指向0地址,运行bootloader 3. bootloader中的代码包含了NAND和SDRAM控制器的驱动,并将剩余的引导部分读入到SDRAM中 4. 在这之后就是正常的启动步骤了,想重映射就重映射,想起操作系统就起操作系统。
猪头三小队长 2014-03-21
  • 打赏
  • 举报
回复
应该是SRAM吧,除非是它的SDRAM控制器能上电之后自动初始化。
fly 100% 2014-03-21
  • 打赏
  • 举报
回复
这个4k是可以控制的 这个地址一般存在与scatter文件中 如果没有就是在编译之前的编译选项里面设置的
Carl_CCC 2013-10-16
  • 打赏
  • 举报
回复
这个地址是编译的时候定义在一个文件里面的,不同的平台略微不一样。
你可以搜索TEXT_BASE的定义,一般是这个。
YTerrenceLau 2013-10-15
  • 打赏
  • 举报
回复
起始地址要看你mmu的配置,不同处理器都不一样的。 地址肯定可以控制,用链接脚本控制,你可以查查链接脚本相关信息。

1,025

社区成员

发帖
与我相关
我的任务
社区描述
Linux /Unix kernel支持不同的硬件体系,X86, ARM, MIPS, 等等
社区管理员
  • CPU和硬件区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧