以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

1、uboot阶段对Flash的分区

所谓分区,即对存储设备进行分块管理。

PC机等产品中,整个硬盘由操作系统统一管理,其使用文件系统帮我们管理硬盘空间,从而管理保证了文件之间不会互相堆叠,使用者不用太过在意分区问题。

uboot中没有操作系统,因此必须事先规定Flash(相当于硬盘)的分区表。实际上在uboot中和kernel中都有一个分区表,它对Flash进行管理与分配。有了这个分区表后,我们在部署系统时按照分区表来部署,uboot和kernel的软件中也按照这个分区表来工作,就不会出错。

分区方法不是固定的,可以变动。但是在移植中必须事先设计好定死,定好的标准如下。

  • uboot必须从Flash的起始地址开始存放,位置取决于SoC的启动设计。
  • uboot分区的大小必须保证uboot肯定能放下,一般设计为512KB或者1MB(因为一般的uboot大小不足512KB)。
  • 环境变量分区一般紧贴着uboot分区,大小为32KB或者更多一点。
  • kernel分区可以紧贴环境变量分区存放,大小一般为3MB或5MB或其他。
  • rootfs分区一般也紧贴着kernel分区存放的。
  • 剩下的就是自由分区,一般kernel启动后将自由分区挂载到rootfs下使用。

也就是说各分区彼此相连,前面一个分区的结尾就是后一个分区的开头。除了uboot必须在Flash开头,其他分区相对位置是可变的。而且各分区的大小由系统移植工程师来定,太小了容易溢出,太大了浪费空间。另外,uboot和kernel必须使用相同的分区表,系统部署时也必须遵守这个分区表。

2、uboot阶段对DDR的分配

内存的内容是掉电消失的,因此可以说DDR是每次系统运行时才开始部署使用的。

内存的分配,关键在于明确内存中某块空间的作用,以避免各个不同功能使用了同一块内存造成的互相踩踏。我们使用指令“tftp 0x23E00000 zImage”,将zImage下载到内存的0x23E00000处就会出现错误,因为这个内存处实际是uboot的镜像所在,这样下载会将内存中的uboot给覆盖掉。

内存的分配使用主要是在linux内核启动起来之前,linux内核启动后内核的内存管理模块会接管整个内存空间,那时候就不用我们来管了。

关于uboot的简介——uboot对Flash与DDR的管理相关推荐

  1. 关于uboot的简介——uboot常用的命令

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. linux终端设计有3种缓冲机制:无缓冲.行缓冲.全缓冲. uboot提供类似linux终端的行缓冲命令行.当我们向终端命令行输入命令的 ...

  2. 十二、uboot中对Flash和DDR的管理

    1.uboot阶段Flash的分区 (1)所谓分区,就是说Flash进行分块管理(就像土地.做个地梁用来分块种不同粮食). uboot中Flash分区为:uboot.var(环境变量). kernel ...

  3. Bootloader及u-boot简介/u-boot系统启动流程

    Bootloader及u-boot简介 Bootloader代码是芯片复位后进入操作系统之前执行的一段代码,主要用于完成由硬件启动到操作系统启动的过渡,从而为操作系统提供基本的运行环境,如初始化CPU ...

  4. linux用户环境下进入uboot,嵌入式linux开发uboot移植(一)——uboot项目简介

    嵌入式linux开发uboot移植(一)--uboot项目简介 一.uboot简介 U-Boot,全称 Universal Boot Loader,是遵循GPL条款的从FADSROM.8xxROM.P ...

  5. U-Boot如何向内核传递Flash的分区信息

    1.如何对nand 分区.修改mtdparts环境变量就可以了么? 对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直 ...

  6. u-boot 2016.03支持nand flash boot

    工作背景: 目标板:imx6ul SOC+底板    u-boot:uboot2016.03 nand flash: Micron MT29F8G08ABABAWP 1G kernel启动过程中关于n ...

  7. uboot分析:uboot的启动过程分析

    (注:本文参考资料:朱有鹏嵌入式课程.本文为个人学习记录,如有错误,欢迎指正.) 1. U-Boot启动过程概述 U-Boot的启动过程分为两个阶段. 第一阶段:主要是SOC内部的初始化,板级的初始化 ...

  8. uboot什么意思(uboot fastboot)

    1.什么是uboot? U-Boot.全名通用引导加载器是遵循GPL条款的开源项目. U-Boot的作用是引导系统. U-Boot是从FADSROM.8xxROM.PPCBOOT逐渐演化而来的. 其源 ...

  9. U-Boot的移植U-Boot Practically Porting Guide(转)

    本文转自:http://blog.csdn.net/hongkaicsu/article/details/5187015 U-Boot的移植之(一)基础篇:添加新的目标板定义 本文使用最新的U-Boo ...

最新文章

  1. nodejs回调函数理解
  2. spark-submit python egg 解决三方件依赖问题
  3. 最小生成树板子-AcWing 859. Kruskal算法求最小生成树
  4. 这应该是最通俗易懂的一篇Spring知识点总结了
  5. HDU2188-Bash博弈
  6. 【大数据】大数据的特点
  7. TCP/IP协议、DoD模型、OSI模型
  8. Democracy Player 0.8.5
  9. 2018北京java面试心得体会(一年经验)
  10. 实变函数与计算机有关系吗,实变函数论文.doc
  11. 疯狂模渲大师体验版安装教程|效果图设计师怎么安装并注册3dmax疯狂模渲大师体验版?
  12. ubuntu opencv 安装
  13. Markdown Viewer 插件安装(使用谷歌浏览器查看md文件格式
  14. 都说DBA 是越老越值钱, 那你是没干过DBA
  15. TensorFlow练习6: 基于WiFi指纹的室内定位(autoencoder)
  16. 网站(B/s)架构发展探索、分析
  17. PowerBI-时间智能函数-LAST系列
  18. Lambda表达式语法 (二)
  19. Prior Posterior和Likelihood的理解与几种表达方式
  20. android 存储卡 合并,安卓手机合并内存卡到内置存储

热门文章

  1. 红细胞膜包裹载抗癌药的PLGA纳米载体/聚多巴胺涂覆载药plga材料(生物偶联)
  2. Asp.net Core 自带DI依赖注入
  3. 红黑树调整(漫画版)
  4. 邻菲罗啉二酰胺功能化/吡啶基改性纤维状介孔二氧化硅微球的应用
  5. 安卓常用控件--列表视图
  6. Web前端开发之HTML篇
  7. 在anaconda设置Python的IDEL编辑器
  8. 田忌赛马java lms_【044】:田忌赛马
  9. golang 使用RSA生成公私钥,加密,解密,并使用SHA256进行签名,验证
  10. 各种品牌类型的主板 电脑开机启动选项快捷键