zoukankan      html  css  js  c++  java
  • S5PV210启动过程详解1

    内存:

            SRAM  静态内存     特点就是容量小、价格高、优点是不需要软件初始化直接上电就能用

            DRAM  动态内存    特点就是容量大、价格低、缺点就是上电后不能直接使用,需要软件初始化后才可以使用

    单片机中:内存需求小、而且希望开发尽量简单,适合全部SRAM

    PC中:     内存需求大、而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM

    外存:

           NorFlash      特点就是容量小、价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质

           NandFlash    特点就是容量大、价格低、缺点就是不能直接总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。

    所以一般PC机都是小容量的 BIOS(NorFLASH)+ 很大容量的硬盘(类似于NandFlash)+大容量DRAM(动态内存)

    一般的单片机    很小容量的NorFlash+很小容量的SRAM。

    嵌入式系统:因为NorFlash很贵,所以现在很多嵌入式系统倾向于不用NorFlash,

                     直接用:外接的大容量Nand+外接大容量DRAM+SoC内置SRAM

    S5PV210使用的启动方式: 外接的大容量Nand+外接大容量DRAM+SoC内置SRAM

    实际上210的启动还要复杂一些,210内置了一块97KB大小的SRAM(iRAM),同时还有一块内置的64KB大小的NorFlash(iROM).

    210的启动大致过程是:

       第一步:CPU上电后从内部IROM中读取预先设置的代码,执行,这一段IROM代码做了一些基本的初始化(时钟初始化、关闭看门狗...)

         (这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样DRAM,因此这一段IROM是不能负责初始化外接的DRAM的,因此这一段代码只能初始化SOC内部的东西);然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),然后从相应的外部存储去读取第一部分启动代码(BL1,16KB)到内部SRAM。

      第二步:从IRAM去运行刚上一步读取来的BL1(16KB),然后执行,BL1负责初始化NANDFlash,然后将BL2读取到IRAM(剩余80KB)然后运行。

      第三步:从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束

    思路:因为启动代码的大小不是固定的,有些公司可能96KB就够了,有些公司1M都不够,所以把第二部分分为2半(BL1和BL2),这两部分协同工作来完成启动。

    iROM(BL0)(64KB)是三星公司写好固化的,CPU上电从0地址开始执行

    参考 博客 http://blog.csdn.net/asd451006071/article/details/43088381

    BL0:  

               关看门口

               初始化指令cache

               初始化栈

               初始化堆

               初始化块设备复制函数(用于快速从nand、nor、sd卡中把数据拷贝到ram中)(所以可以支持多种启动)

               设置SoC时钟系统

               复制BL1到内部IRAM(16KB)

               检查BL1的校验和

               跳转到BL1去执行

    S5PV210的所有启动

        先1st启动 ,通过OMpin选择启动介质

        再2nd, 从SD2

        再UART

        再USB

  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/yygsj/p/4971131.html
Copyright © 2011-2022 走看看