当前位置:  技术问答>linux和unix

大家好,我有一个关于uboot的问题。

    来源: 互联网  发布时间:2016-09-26

    本文导语:  你好,我有一个问题想请教。 NAND FLASH 启动u-boot的过程我明白。就是会将u-boot的前4k的代码直接复制到SRAM中,然后执行。 但是,连接器,如何确定哪部分是前4k的代码。还是就是START.S这部分大小就有4k,它是怎么样...

你好,我有一个问题想请教。
NAND FLASH 启动u-boot的过程我明白。就是会将u-boot的前4k的代码直接复制到SRAM中,然后执行。
但是,连接器,如何确定哪部分是前4k的代码。还是就是START.S这部分大小就有4k,它是怎么样分开的。复制的时候,复制的时候是把所有的代码都复制的sdram中,还是只是把没有执行部分的代码复制过去了。
其实,总结下,就是,代码在执行是的内存是怎么分配的。
我看过 SYSTEM.MAP 但是还是没有明确的看明白是怎么样的。
希望您能指教。
我的邮箱是  zdshuwei@gmail.com

谢谢大家了。

|
会将u-boot的前4k的代码直接复制到SRAM中
----------------
这个是cpu硬件实现的动作
因为nor flash比较贵,遇到需要很多资料需要存储的产品,硬件工程师就只会用nand flash
而nand flash不同于nor flash,它没有地址线和数据线,不能按地址任意读取,只能通过发指令的方式读取块
cpu上电之后,要执行的程序只能从rom中来,rom又以nand flash最便宜,所以很多cpu就提供了nand flash读取硬件,能上电自动把nand的前4k或8k读取到片内ram上

连接器,如何确定哪部分是前4k的代码。还是就是START.S这部分大小就有4k,它是怎么样分开的
--------------------
使用连接脚本能指定代码的具体链接位置

第一次读取的4k,主要工作是负责把nand中的bootloader全部读取到ram中,然后触发reset中断

|
  Mark。

|
楼主:你没好好研究start。s
你需要明白:
绝对地址
ldr 和ldr =
链接地址
地址无关
加载域与运行域

|
在ubootboard板卡名的目录下
有一个u-boot.lds的文件,这个文件里定义了在image生成时候的layout情况,通常这个文件被称为链接脚本。你要关心的是里面的text段
  .text      :
  {
    cpu/mpc8260/start.o (.text)
通常start.S输出的start.o被放在最前面的位置,而_start标签对应的地址就是CPU Reset异常对于的入口地址。

对于nand前4KB的情况,一般在arm的处理器上用到的比较多,这是芯片控制器在cpu运行第一条指令之前通过硬件的方式来实现的。
在SYSTEM.MAP看到的符号都是代码存放在Flash上对应的地址,将代码段放在SDRAM上是通过函数:
relocate_code来实现的,这个函数位于board_init_f的尾部,运行完成后来到board_init_r,这时代码已经在SDRAM的地址上运行了。

|
可以用16进制编辑器看下,编译出来的u-boot.map。也许会有所收获

    
 
 

您可能感兴趣的文章:

  • ARM11 UBOOT移植问题
  • uboot移植后,使用历史命令问题~
  • dm355 uboot调试问题,高手指教,快,快,很急。。。。。。。。。。。。。。。。
  • 关于uboot打补丁的问题
  • uboot烧写问题,大家指教。初学。谢谢大家了。
  • 关于uboot2009.08 debug的问题
  • uboot1.1.6移植问题
  • uboot 实现升级的问题。
  • 请教uboot进入命令行加密的模式问题
  • 弱智问题 arm7板 uboot显示正常,超级终端内按键无反应,自动加载uclinux显示乱码,usb串口线的问题还是。。?
  • uboot中bmp命令添加问题
  • 关于交叉环境和uboot的编译的问题,请教各位高手~
  • uboot设置mem问题
  • norflash在uboot移植中的问题
  • uboot1.2.0烧写到开发板上后的问题
  • 三星 uboot 编译问题
  • uboot启动内核的问题~解决了好久都没有解决出来~
  • uboot中DM9000问题
  • uboot 编译脚本问题
  • uboot1.3.4在移植norflash问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 区分uboot和kernel的宏
  • 怎么用gdb调试uboot?????求解
  • uboot 不能启动了
  • UBOOT启动一直输出OK是怎么回事
  • uboot里 nboot 和 nboot.e有什么区别
  • 求各位高人 UBOOT!
  • UBOOT之MDDR内存参数修改
  • uboot 怎样不输出内核信息
  • uboot和grub是什么关系
  • 如何让uboot自动从U盘更新内核?
  • 如何让uboot提速
  • 如何在DM368平台,Uboot下添加RTL8201的驱动
  • 关于uboot的Dual Image
  • uboot 移植到 mini2440 支持从 nand flash 启动
  • uboot启动后,到最后一步就进入命令循环,等待用户从串口输入的命令,进行相应工作,为什么不是直接交给linux
  • 救命啊 uboot启动时的logo如何一直显示到kernel起来
  • 请问,uboot的命令函数,能否调用全局变量
  • uboot中的CREATE_LDR_ENV变量
  • uboot的学习
  • 对uboot如何瘦身!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3