一、三星官方推荐方式
1、数据手册《S5PV210_iROM_Application_note》中截取:
(1)第一步:执行BL0。执行完成后调用BL1
(2)第二步:执行BL1。加载BL2到SRAM中
(3)第三步:执行BL2。初始化DDR。
(4)第四步:将OS加载到DDR中
(5)第五步:操作系统在DDR中启动运行
 
2、详细分析
(1)BL0:这一段代码是三星官方出厂时烧录的一段代码,存在SoC内部的iROM(就是SROM,容量64KB)中。
 
(2)BL1:启动代码的前16KB,负责初始化NandFlash和读取启动代码的后面80KB代码到SRAM中运行。
(3)BL2:初始化DRAM,将OS读取到DRAM中,最终启动OS,系统运行起来。
注意:三星推荐的这种方式限制了bootloader的大小不能超过96KB。
 
二、uboot的启动方式
      uboot是一种通用的启动方式,对启动代码的大小没有限制。
      启动过程和三星的前两步是一样的,不同之处在uboot中的BL1会初始化DDR,将uboot的剩余代码全部复制到DRR中,然后,用汇编代码的一句长转移指令跳转到DRR中去执行刚刚copy的一份BL2代码,在BL2中加载操作系统,完成启动。
注意:
(1)uboot的大小没有限制
(2)跳转之前,需要代码的重定位
(3)在实际的工程项目中可能不会使用这种uboot,而是自己写一个uboot,更加适合项目
 
 
 
 
----------------------------------------------------------------------------------
  声明:部分内容摘录至《朱老师物联网视频教程》http://www.zhulaoshi.org/
----------------------------------------------------------------------------------

S5PV210启动过程分析的更多相关文章

  1. ASP.Net Core MVC6 RC2 启动过程分析[偏源码分析]

    入口程序 如果做过Web之外开发的人,应该记得这个是标准的Console或者Winform的入口.为什么会这样呢? .NET Web Development and Tools Blog ASP.NE ...

  2. 开机SystemServer到ActivityManagerService启动过程分析

    开机SystemServer到ActivityManagerService启动过程 一 从Systemserver到AMS zygote-> systemserver:java入层口: /** ...

  3. Neutron分析(2)——neutron-server启动过程分析

    neutron-server启动过程分析 1. /etc/init.d/neutron-server DAEMON=/usr/bin/neutron-server DAEMON_ARGS=" ...

  4. linux视频学习7(ssh, linux启动过程分析,加解压缩,java网络编程)

    回顾数据库mysql的备份和恢复: show databases; user spdb1; show tables; 在mysql/bin目录下 执行备份: ./mysqldump -u root - ...

  5. Activity启动过程分析

    Android的四大组件中除了BroadCastReceiver以外,其他三种组件都必须在AndroidManifest中注册,对于BroadCastReceiver来说,它既可以在AndroidMa ...

  6. 第一章之s5pv210启动顺序

    我所使用的开发板是:友善之臂smart210,cpu为s5pv210.u-boot版本是:u-boot-2012-10 1,首先在u-boot中配置相对应的开发板的配置文件 #make s5p_gon ...

  7. Spark Streaming应用启动过程分析

    本文为SparkStreaming源码剖析的第三篇,主要分析SparkStreaming启动过程. 在调用StreamingContext.start方法后,进入JobScheduler.start方 ...

  8. ActivityManagerService启动过程分析

    之前讲Android的View的绘制原理和流程的时候,讲到过在Android调用setContentView之后,Android调用了一个prepreTravle的方法,这里面就提到了Activity ...

  9. Disconf源码分析之启动过程分析下(2)

    接上文,下面是第二次扫描的XML配置. <bean id="disconfMgrBean2" class="com.baidu.disconf.client.Dis ...

随机推荐

  1. hdu 3357 水题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3357 #include <cstdio> #include <cmath> # ...

  2. 在反射中Member{get{..}set{..}}与Member{get;set;}的区别?

    最近的在写代码的时候,需要用到反射来获取类中的所有公开属性值,于是写下如下代码: StringBuilder sb = new StringBuilder(); foreach (var f in t ...

  3. python面向对象【初级篇】

    概述 python支持多种编程范式:面向过程.面向对象.面向切面(装饰器部分)等. 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对 ...

  4. 简单md5加密

    using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptograph ...

  5. 关于python保留几位小数,不进行四舍五入的方法

    def cut(num,c): c=10**(-c) return (num//c)*c print cut(2.999,2) 不过有一部分数会出现问题,还请大神评论 例如: >>> ...

  6. Android数据存储(1)少量数据保存之SharedPreferences接口实例

    SharedPreferences数据保存主要是通过键值的方式存储在xml文件中 xml文件在data/此程序的包名/XX.xml 格式 <?xml version='1.0' encoding ...

  7. QT unit test code coverage

    准备环境: qt-creator5.2.1 , gcov(gcc 默认安装),lcov(gcov 的图形化显示界面),qt_testlib 各环境介绍: 1.gcov   gcov 是一个可用于C/C ...

  8. PHPExcel讀取excel數據

    require_once 'PHPExcel.php'; $PHPReader = new PHPExcel_Reader_Excel2007(); $filePath = 'wjyl.xlsx'; ...

  9. 通过GitHub Pages建立个人站点(详细步骤)

    1 Git简介 2 为什么使用Github Pages 3 创建Github Pages 3.1 安装git工具. 3.2 两种pages模式 3.3 创建步骤 3.4 常用命令 4 使用Jekyll ...

  10. IOS 获取wifi的SSID

    #import <SystemConfiguration/CaptiveNetwork.h> - (NSString *)currentWifiSSID { // Does not wor ...