一、学习uboot前需要掌握的知识1、什么是内存和外存参考博客https://zhuanlan.zhihu.com/p/375053359 https://blog.csdn.net/h_8410435/article/details/101718769 https://zhuanlan.zhihu.com/p/714402846内存Memory又称主存是CPU直接寻址和读写的高速存储空间。它作为处理器与硬盘、显卡等硬件之间的数据交换桥梁起到临时缓存的作用。之所以称为内存是相对于硬盘、U盘等外部存储器而言——软件程序平时存储在外存中运行时需加载到内存CPU才能高效访问因为CPU与内存的数据交换速度远高于外存。内存条由内存芯片、印刷电路板和金手指等部件组成。按功能划分内存包括ROM只读存储器和RAM随机存取存储器。其中RAM是主存的主要组成部分用于临时存放运行中的程序和数据ROM仅占很小一部分用于存储BIOS等固件信息。需要说明的是硬盘、U盘等属于外部存储设备与ROM并非同一概念。更加官方一点的定义内存内存又称主存计算机中的程序的运行都是在内存中进行的只有计算机在运行计算机CPU就会把需要的计算数据调到内存中进行运算。通常内存分为随机存储器RAM、只读存储器ROM、高速缓存CACHE。硬盘从计算机的结构体系来讲硬盘应该算是计算机的“外存”。二、内存和硬盘的区别内存和硬盘的主要区别主要为以下三点1、内存是计算机运行的场所硬盘用来存放暂时不用的信息2、内存是半导体材料制成的硬盘是磁性材料制成的3、内存这里指内存中的RAM中的信息会随掉电消失硬盘中的信息可以长久保存。2、存储器RAM、ROM、FLASH、SRAM、DRAM、SDRAM、DDRRAM和ROM先说一下RAM和ROM的关系。ROMRead Only Memory只读存储器只能读出事先所存数据的固态半导体存储器。其特点是不能更改存储器内部的数据。适用于不需经常变更资料的系统里。其内的数据不会因为掉电而消失。ROM主要分为掩膜ROM专用掩膜板、PROM可一次性编程 ROM、EPROM紫外线擦除可改写 ROM、EEROM电擦除可改写 ROM、flash ROM快闪 ROM等几类。RAM Random Access Memory) 随机访问寄存器可以随意取出或存入数据且存取的速度与存储单元的位置无关。一般来说RAM也叫主存是与CPU直接交换数据的内部存储器。它可以随时读写刷新时除外而且速度很快通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入存入或读出取出信息。它与ROM的最大区别是数据的易失性即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。所谓“随机存取”指的是当存储器中的数据被读取或写入时所需要的时间与这段信息所在的位置或所写入的位置无关。相对的读取或写入顺序访问Sequential Access存储设备中的信息时其所需要的时间与位置就会有关系。它主要用来存放操作系统、各种应用程序、数据等。RAM特点为访问速度快数据易失断电会丢失数据电容器或多或少有漏电的情形不断电数据也会随时间流失因此需要指定期读取电容器的状态然后按照原来的状态重新为电容器充电这一过程称为“刷新”静电敏感性静电会干扰存储器内电容器的电荷引致数据流失。SRAM与DRMA静态随机存取存储器SRAM是RAM的一种类型。其静态特性意味着只要持续供电存储数据即可稳定保持无需像动态随机存取存储器DRAM那样周期性刷新。但SRAM仍属于易失性存储器断电后数据会丢失这一点与断电后仍能保存数据的ROM或闪存不同。SRAM的主要缺点是集成度较低、功耗高于DRAM。相同容量下DRAM的芯片面积更小、成本更低而SRAM需要更大的硅片面积因此价格更贵通常用于对速度要求极高的缓存Cache等场景。FLASHFLASH 闪存则是一种非易失性 Non-Volatile 内存在没有电流供应的条件下也能够长久地保持数据。其存储特性相当于硬盘这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。FLASH分为Nor Flash和Nand Flash。Nor Flash有自己的地址线和数据线可以采用类似于memory的随机访问方式在Nor Flash上可以直接运行程序所以Nor Flash可以直接用来做boot采用Nor Flash启动的时候会把地址映射到0x00上。Nand Flash是IO设备数据、地址、控制线都是共用的需要软件区控制读取时序所以不能像Nor Flash、内存一样随机访问不能EIP片上运行因此不能直接作为boot。因此Nand Flash适合大容量数据存储类似硬盘Nor Flash适合小容量的程序或数据存储类似小硬盘但是可以EIP。性能比较1、NOR的读速度比NAND稍快一些。2、NAND的写入速度比NOR快很多。3、NAND的4ms擦除速度远比NOR的5s快。4、大多数写入操作需要先进行擦除操作。5、NAND的擦除单元更小相应的擦除电路更少接口比较NOR flash带有SRAM接口有足够的地址引脚来寻址可以很容易地存取其内部的每一个字节。NAND器件使用复杂的I/O口来串行地存取数据各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的块这一点有点像硬盘管理此类操作很自然地基于NAND的存储器就可以取代硬盘或其他块设备。NAND flash和NOR flash的容量和成本NAND flash的单元尺寸几乎是NOR器件的一半由于生产过程更为简单NAND结构可以在给定的模具尺寸内提供更高的容量也就相应地降低了价格。NOR flash占据了容量为116MB闪存市场的大部分而NAND flash只是用在8128MB的产品当中这也说明NOR主要应用在代码存储介质中NAND适合于数据存储SDRAM和DDRSDRAM Synchronous Dynamic Random Access Memory同步动态随机存储器即内存是DRAM 的一种它是同步动态存储器。使用SDRAM不但能提高系统表现还能简化设计、提供高速的数据传输。内存一般是代码的执行空间程序则是以文件的形式保存在硬盘里面的。运行程序之前操作系统先将程序载入内存在内存里面执行程序。由于内存是RAM随机访问可以通过地址去定位一个字节的数据CPU在执行程序时将PC的值设置为程序在内存中的开始位置之后CPU一次到内存地址中取址、译码和执行。要让程序在内存里面运行必须先对内存进行初始化未初始化的内存是不能用来读取和存储数据的。DDR SDRAM全称为Double Data Rate SDRAM中文名为“双倍数据流SDRAM”。DDR SDRAM在原有的SDRAM的基础上改进而来,其数据传输速度为系统时钟频率的两倍由于速度增加其传输性能优于传统的SDRAM。DDR SDRAM 在系统时钟的上升沿和下降沿都可以进行数据传输。SDRAM在一个时钟周期内只传输一次数据它是在时钟上升期进行数据传输。二、什么是Bootloader、u-bootBootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序可以初始化硬件设备、建立内存空间的映射图从而将系统的软硬件环境带到一个合适的状态以便为最终调用操作系统内核准备好正确的环境。uboot (Universal Bootloader)是Bootloader的一种实现支持多种嵌入式CPU架构(如ARM、MIPS、PowerPC等)。它不仅具备启动内核的功能还提供了丰富的硬件管理能力和命令行界面能够完成镜像烧录、网络功能等任务。两者的主要区别在于Bootloader是一个通用概念而uboot是具体的实现。换句话说uboot是Bootloader的一个子集其核心作用是启动操作系统内核同时具备更强的扩展性和功能性。举例来说。PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的 OSBootLoader(比如LILO和GRUB 等)一起组成。BIOS在完成硬件检测和资源分配后将硬盘 MBR中的BootLoader 读到系统的RAM中然后将控制权交给 OS BootLoader。BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM 中然后跳转到内核的入口点去运行也即开始启动操作系统。具体来说是这样的其中①②步都是BIOS干的活。第③步的os bootloader干的活。三、参考博客https://developer.aliyun.com/article/1411165?scm20140722.ID_community%40%40article%40%401411165._.ID_community%40%40article%40%401411165-OR_rec-PAR1_210bc22217689809585761280d0b1a-V_1-RL_community%40%40article%40%401411168