一、三星官方推荐方式
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. 男人的网站—Indochino不完全解析 | 曾亮.ME

    男人的网站-Indochino不完全解析 | 曾亮.ME 亮兄 可以参考一下国内的 ROMWE SHEINSIDE

  2. python 解析xml 文件: DOM 方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  3. hdu 3642 Get The Treasury(扫描线)

    pid=3642" style="">题目链接:hdu 3642 Get The Treasury 题目大意:三维坐标系,给定若干的长方体,问说有多少位置被覆盖3次 ...

  4. 庖丁解牛FPPopover

    作者:ani_di 版权所有,转载务必保留此链接 http://blog.csdn.net/ani_di 庖丁解牛FPPopover FPPopover是一个实现Popover控件的开源项目,比标准控 ...

  5. Android(java)学习笔记240:多媒体之图形颜色的变化

    1.相信大家都用过美图秀秀中如下的功能,调整颜色: 2. 下面通过案例说明Android中如何调色: 颜色矩阵 ColorMatrix cm = new ColorMatrix(); paint.se ...

  6. JNI与多线程

    在android开发过程中,由于主线程要聚焦于UI交互,为了软件运行流畅必然要用到很多多线程技术.而在JNI机制中专门提供了一些避免线程冲突的函数.了解.学习并掌握如何避免线程冲突问题是一个程序猿的必 ...

  7. Retrofit2 简介 语法 案例

    简介 官网:http://square.github.io/retrofit/ GitHub:https://github.com/square/retrofit/ compile 'com.squa ...

  8. 堆和栈 内存分配 heap stack

    Java中的堆和栈         在[函数]中定义的一些[基本类型的变量]和[对象的引用变量]都是在函数的[栈内存]中分配的.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间, ...

  9. android requestWindowFeature使用详解

    requestWindowFeature可以设置的值有:          1.DEFAULT_FEATURES:系统默认状态,一般不需要指定          2.FEATURE_CONTEXT_M ...

  10. Modernizr——为HTML5和CSS3而生!

    原文地址:http://www.alistapart.com/articles/taking-advantage-of-html5-and-css3-with-modernizr/ 堂主译文地址:ht ...