关于uboot的简介——uboot对Flash与DDR的管理
以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。
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的管理相关推荐
- 关于uboot的简介——uboot常用的命令
以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. linux终端设计有3种缓冲机制:无缓冲.行缓冲.全缓冲. uboot提供类似linux终端的行缓冲命令行.当我们向终端命令行输入命令的 ...
- 十二、uboot中对Flash和DDR的管理
1.uboot阶段Flash的分区 (1)所谓分区,就是说Flash进行分块管理(就像土地.做个地梁用来分块种不同粮食). uboot中Flash分区为:uboot.var(环境变量). kernel ...
- Bootloader及u-boot简介/u-boot系统启动流程
Bootloader及u-boot简介 Bootloader代码是芯片复位后进入操作系统之前执行的一段代码,主要用于完成由硬件启动到操作系统启动的过渡,从而为操作系统提供基本的运行环境,如初始化CPU ...
- linux用户环境下进入uboot,嵌入式linux开发uboot移植(一)——uboot项目简介
嵌入式linux开发uboot移植(一)--uboot项目简介 一.uboot简介 U-Boot,全称 Universal Boot Loader,是遵循GPL条款的从FADSROM.8xxROM.P ...
- U-Boot如何向内核传递Flash的分区信息
1.如何对nand 分区.修改mtdparts环境变量就可以了么? 对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直 ...
- u-boot 2016.03支持nand flash boot
工作背景: 目标板:imx6ul SOC+底板 u-boot:uboot2016.03 nand flash: Micron MT29F8G08ABABAWP 1G kernel启动过程中关于n ...
- uboot分析:uboot的启动过程分析
(注:本文参考资料:朱有鹏嵌入式课程.本文为个人学习记录,如有错误,欢迎指正.) 1. U-Boot启动过程概述 U-Boot的启动过程分为两个阶段. 第一阶段:主要是SOC内部的初始化,板级的初始化 ...
- uboot什么意思(uboot fastboot)
1.什么是uboot? U-Boot.全名通用引导加载器是遵循GPL条款的开源项目. U-Boot的作用是引导系统. U-Boot是从FADSROM.8xxROM.PPCBOOT逐渐演化而来的. 其源 ...
- U-Boot的移植U-Boot Practically Porting Guide(转)
本文转自:http://blog.csdn.net/hongkaicsu/article/details/5187015 U-Boot的移植之(一)基础篇:添加新的目标板定义 本文使用最新的U-Boo ...
最新文章
- nodejs回调函数理解
- spark-submit python egg 解决三方件依赖问题
- 最小生成树板子-AcWing 859. Kruskal算法求最小生成树
- 这应该是最通俗易懂的一篇Spring知识点总结了
- HDU2188-Bash博弈
- 【大数据】大数据的特点
- TCP/IP协议、DoD模型、OSI模型
- Democracy Player 0.8.5
- 2018北京java面试心得体会(一年经验)
- 实变函数与计算机有关系吗,实变函数论文.doc
- 疯狂模渲大师体验版安装教程|效果图设计师怎么安装并注册3dmax疯狂模渲大师体验版?
- ubuntu opencv 安装
- Markdown Viewer 插件安装(使用谷歌浏览器查看md文件格式
- 都说DBA 是越老越值钱, 那你是没干过DBA
- TensorFlow练习6: 基于WiFi指纹的室内定位(autoencoder)
- 网站(B/s)架构发展探索、分析
- PowerBI-时间智能函数-LAST系列
- Lambda表达式语法 (二)
- Prior Posterior和Likelihood的理解与几种表达方式
- android 存储卡 合并,安卓手机合并内存卡到内置存储