1、三星推荐的启动方式

(1)将bl1放在在SRAM中运行,将bl2也在SRAM中运行,就像datasheet中描述那样。

(2)bootloader必须小于96KB并大于16KB,假定bootloader为80KB。

(3)启动过程

  • 先开机上电后BL0运行,BL0会加载外部启动设备中的bootloader的前16KB(BL1)到SRAM中去运行;
  • BL1运行时会加载BL2(bootloader中80-16=64KB)到SRAM中(从SRAM的16KB处开始用)去运行;
  • BL2运行时会初始化DDR并且将OS搬运到DDR去执行OS,启动完成。

2、分散加载(两个链接地址)

文件太大,将整体分割成两个独立的部分bl1和bl2。

(1)分别烧录到sd卡的不同扇区(其中bl1肯定位于第一扇区开始的地方;bl2放在适当的位置,可以由烧录脚本知道bl2放在哪里);

(2)其中bl1在SRAM中运行,把DDR初始化后,将bl2加载到DDR中。

(3)BL1和BL2其实是2个独立的程序,链接时也是独立分开链接的,因此不能使用ldr pc, =main这种方式来通过链接地址实现远跳转到BL2。

  • 使用地址进行强制跳转。因为知道BL2在内存地址0x23E00000处,所以直接去执行这个地址即可。
  • 实现例子见http://blog.csdn.net/oqqhutu12345678/article/details/78942667中第8点。

3、uboot的实现方式

(1)uboot大小随意,假定为200KB。

(2)启动过程

  • 先开机上电后BL0运行,BL0会加载外部启动设备中的uboot的前16KB(BL1)到SRAM中去运行;
  • BL1运行时会初始化DDR,然后将整个uboot搬运到DDR中,然后用一句长跳转(从SRAM跳转到DDR)指令从SRAM中直接跳转到DDR中继续执行uboot直到uboot完全启动。
  • uboot启动后在uboot命令行中去启动OS。

(3)和分散加载的异同

  • 程序代码仍然包括BL1和BL2两部分,但是uboot组织形式上不分为2部分而是作为一个整体来组织。
  • 它的实现方式是:iROM启动然后从SD卡的扇区1开始读取16KB的BL1然后去执行BL1,BL1负责初始化DDR,然后从SD卡中读取整个程序(BL1+BL2)到DDR中,然后从DDR中执行(利用ldr pc, =main这种方式以远跳转从SRAM中运行的BL1跳转到DDR中运行的BL2)。

x210开发板的三种启动方式(三星推荐的,分散加载,uboot采用的)相关推荐

  1. Spring Boot项目(Maven\Gradle)三种启动方式及后台运行详解

    Spring Boot项目三种启动方式及后台运行详解 1 Spring Boot项目三种启动方法 运行Application.java类中的Main方法 项目管理工具启动 Maven项目:mvn sp ...

  2. Tomcat介绍及三种启动方式的区别

    一.Tomcat的下载 二.Tomcat目录说明 三.Tomcat常用命令 四.Tomcat服务的安装 五.Tomcat启动的三种方式 六.三种启动方式的区别 七.Tomcat端口占用问题 一.Tom ...

  3. Spring Boot(4)--- spring boot的三种启动方式

    springboot的三种启动方式 一:IDE 运行Application这个类的main方法 二:在springboot的应用的根目录下运行mvn spring-boot:run 三:使用mvn i ...

  4. GPS/BDS:星历表、历书、GPS三种启动方式

    星历表.历书.GPS三种启动方式 转自:https://blog.csdn.net/longwei91/article/details/82379165 星历表(Ephemeris):包含了非常详细的 ...

  5. Linux安装Redis以及Redis三种启动方式

    目录树 一.安装前的软件准备 二.Redis的安装 三.Redis的三种启动方式!!! 1.直接启动Redis 2.后台进程方式启动Redis 3.通过开机启动方式 四.Window上桌面连接Linu ...

  6. 启动指定参数_SpringBoot的三种启动方式

    1.背景 这几天在看面试题,看到了有关SpringBoot的相关知识点,其中有一个问题是:"SpringBoot有哪几种启动方式?".一下子懵逼了,脑子里面只记得在本地启动的时候是 ...

  7. GPS接收机热启动、温启动、冷启动三种启动方式的区别

    众所周知GPS接收机定位的时候,需要两种基本信息,一种卫星星历和卫星的观测数据(伪距.载波相位.测距码).定位的条件星历和卫星的观测数据,缺一不可. 卫星星历是用来描述卫星轨道的参数,用这些参数可以计 ...

  8. Xilinx ZYNQ 7000+Vivado2015.2系列(五)之ZYNQ的三种启动方式-JTAG、SD card、Flash

    前言: 前面我们都是使用JTAG方式下载比特流文件,然后下载elf文件,最后点击Run as或者Debug as来运行程序.JTAG方式是通过tcl脚本来初始化PS,然后用JTAG收发信息,优点是可以 ...

  9. android+rom+bootloader+flash,Android ROM开发(4) bootloader 三种启动模式

    Andrew Huang 转载请注明作者及网址 HTC手机中用的bootloader称为HBoot,不知道是不是HTC Bootloader 之意,从官网的源码看这个bootloader不象是u-bo ...

最新文章

  1. 计算机设备管理器不显示com,台式机设备管理器打开是空白怎么办_win10设备管理无法显示解决方法...
  2. 【学术研究基础】聚类分析学习
  3. 12道Python基础字符编码数据类型练习题
  4. Spatial Transformer Networks(STN)详解
  5. 足不出户,游遍七大洲,不可错过的14部地理纪录片!
  6. JDK 9是某些功能的终结
  7. 第51课 拍手游戏--2021.09.19
  8. 第3关:HDFS-JAVA接口之上传文件
  9. 将Windows8或WindowsServer2012装在VHD上
  10. 手写体识别识别(pytorch):
  11. BUAA(2021春) 北京地铁乘坐线路查询——Dijkstra和Floyd双解法
  12. 个人自媒体技术分享博客网站模板
  13. __stack_chk_fail之栈帧溢出检测技术
  14. EleutherAI GPT-Neo: 穷人的希望
  15. 解决jmeter5.4.3在高分辨率下的显示问题
  16. UVa11134 - Fabled Rooks(贪心)
  17. MAC 安装及配置maven
  18. 人机博弈小游戏(Java)
  19. 服务器的ftp数据库信息,如何查看ftp服务器数据库
  20. python 隐藏进程_运行进程隐藏Python

热门文章

  1. 总结Selenium WebDriver中一些鼠标和键盘事件的使用
  2. jquery+easyui开发、培训文档
  3. centos7如何安装cloud-init
  4. Mac - 设置NSButton 的背景色
  5. Titanium 列表显示TableView
  6. Forward框架的逆袭:解析Forward+渲染
  7. 给.net初学者的一些建议(共勉之)[转载]
  8. 李开复评价马斯克:他真正的目的是把人变成半机械人
  9. 一起看一下主流应用使用了哪些三方库
  10. Dapper的基本使用