S5PV210的启动过程

news2025/7/22 6:45:51

一、内存

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

  • 单片机中:内存需求量小,而且希望开发尽量简单,适合全部用SRAM
  • 嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质
  • PC机: 内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM

二、外存

  • NorFlash:特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质
  • NandFlash(跟硬盘一样):特点是容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写

三、方案设计

  • 一般PC机都是:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM 。
  • 一般的单片机: 很小容量的NorFlash + 很小容量的SRAM(全部是上电即可使用) 。
  • 嵌入式系统:因为NorFlash很贵,所以现在很多嵌入式系统倾向于不用NorFlash,直接用:外接的大容量Nand + 外接的大容量DRAM + SoC内置SRAM。

四、S5PV210启动方式

S5PV210 使用的启动方式是:外接的大容量 Nand Flash 硬盘 + 外接的大容量 DRAM 内存 + SoC 内置 SRAM。

实际上 210 的启动还要更好玩一些,210 内置了一块 96KB 大小的 SRAM(叫 iRAM),同时还有一块内置的 64KB 大小的 NorFlash(叫 iROM)。

210 的启动过程大致是:
第一步:CPU 上电后,先从内部 IROM(NOR Flash)中读取预先设置的代码,执行。这一段 IROM 代码首先做了一些基本的初始化(CPU时钟、关看门狗···)(这一段 IROM 代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的 DRAM 内存,因此这一段 IROM 是不能负责初始化外接的 DRAM 内存 的,因此这一段代码只能初始化 SoC 内部的东西);然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),然后从相应的外部存储器去读取启动代码到内部 SRAM(叫 iRAM)。

第二步:从 SRAM(叫 iRAM) 去运行刚上一步读取来的启动代码,然后执行。这一段启动代码就会负责初始化 Nand Flash 硬盘, 初始化 DRAM 内存 ,初始化板卡,然后将 OS 从 Nand Flash 硬盘读取到 DRAM 内存 , 然后运行。

在这里插入图片描述
在这里插入图片描述


思路:因为启动代码的大小是不定的,有些公司可能 96kb 就够了,有些公司可能 1MB 都不够。所以刚才说的两步的启动方式不合适。三星的解决方案是:把启动代码分为两半(BL1 和 BL2),这两部分协同工作来完成启动。

实际的启动方式如下:

第一步:CPU 上电后先从内部 IROM 中读取预先设置的代码(BL0),执行。这一段 IROM 代码首先做了一些基本的初始化(CPU 时钟、关看门狗···)(这一段 IROM 代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的 DRAM 内存,因此这一段 IROM 是不能负责初始化外接的 DRAM 内存的,因此这一段代码只能初始化 SoC 内部的东西);然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),然后从相应的外部存储器去读取第一部分启动代码(BL1,大小为16KB)到内部 SRAM(叫 iRAM)。
第二步:从 SRAM(叫 iRAM)去运行刚上一步读取来的 BL1(16KB),然后执行。BL1 负责初始化 NandFlash 硬盘,然后将 BL2 读取到 SRAM(叫 iRAM)(剩余的 80KB)然后运行
第三步:从 SRAM(叫 iRAM)运行 BL2,BL2 初始化 DRAM 内存,然后将 OS 读取到 DRAM 内存中,然后启动 OS,启动过程结束。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

device copy function 的解释

The S5PV210 internally has a ROM code of block copy function for boot-u device. Therefore, developer may not needs to 
implements device copy functions. These internal functions can copy any data from memory devices to SDRAM. User can 
use these function after ending up the internal ROM  boot process completely.

S5PV210内部有一个用于引导-u设备的块拷贝功能的ROM代码。因此,开发人员可能不需要实现设备复制功能。
这些内部函数可以将任何数据从内存设备复制到SDRAM。用户可以在完全结束内部ROM启动过程后使用这些功能。

也就是, IROM 代码(BL0)拥有针对各种启动介质(NOR Flash/eSSD/OneNand/Nand Flash)的块拷贝函数。因此,开发人员可能不需要实现设备复制功能。这些内部函数可以将任何数据从启动介质设备复制到SDRAM。用户可以在完全结束 IROM(BL0)阶段后使用这些拷贝函数,将 BL1 代码拷贝到 IRAM(internel SRAM)中执行。

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


五、S5PV210启动过程概述

1、210内部有 iROM 和 iRAM,因此启动时分两个阶段:内部启动阶段和外部启动阶段。对于内部启动阶段各种S5PV210的开发板都是相同的,对于外部启动阶段,不同开发板会有不同。
启动过程主要参考《S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf》


2、S5PV210出厂时内置了 64KB iROM和 96KB iRAM。iROM 中预先内置烧录了一些代码(称为 iROM 代码),iRAM 属于 SRAM(不需软件初始化,上电即可使用)。210启动时首先在内部运行 iROM 代码,然后由 iROM 代码开启外部启动流程。

为什么需要设计 iROM 和 iRAM?答案是为了支持多种外部设备启动。


3、Second boot support

  • When 1 st boot mode fails, SD/MMC boot will be tried through SD/MMC channel 2 with 4-bit data
  • 当第一启动模式失败时,SD/MMC卡启动模式下将会从SD/MMC2通道尝试再次启动。
  • 这种二级启动是一种冗余设计。SoC 中第一启动介质故障而导致不能启动时,可以从备用启动介质启动。
    在这里插入图片描述
    在这里插入图片描述

4、使用 iROM 启动的好处

  • 降低BOM成本。因为 iROM 可以使 SOC 从各种外设启动,因此可以省下一块 boot rom(专门用来启动的rom,一般是norflash)
  • 支持各种校验类型的nand flash
  • 可以在不使用编程器的情况下使用一种外部存储器运行程序来给另一种外部存储器编程烧录。这样生产时就不用额外购买专用编程器了,降低了量产成本。

5、BL0做了什么?

  • 关看门狗
  • 初始化指令 cache
  • 初始化栈
  • 初始化堆
  • 初始化块设备复制函数 device copy function
  • 设置 SoC 时钟系统
  • 复制 BL1 到内部 IRAM(16KB)
  • 检查 BL1 的校验和
  • 跳转到 BL1 去执行

6、S5PV210的所有启动

  • 先1st启动,通过OMpin选择启动介质
  • 再2nd启动,从SD2
  • 再Uart启动
  • 再USB启动
    在这里插入图片描述

7、启动块分配指南

可以看到,对于 SD卡、MMc、eSSD的启动介质,BL1 代码应该拷贝到启动介质的 1 号扇区;
而对于其他启动介质,BL1 代码应该拷贝到启动介质的 0 号扇区。

在这里插入图片描述


8、 Header information data for Boot Code description

The BL1 must have header data. The header data is used for being copied to internal SRAM by iROM code. 
The header data has two information. One is size of BL1 and Another is checksum data of BL1.

BL1必须有报头数据。报头数据被用于通过iROM代码复制到内部SRAM。

头数据有两个信息。一个是BL1的大小,另一个是BL1的校验和数据。

在这里插入图片描述

When loading BL1, iROM check size of BL1 in header data and copy BL1 to internal SRAM. 
After coping BL1, iROM sum data of copied BL1 and compare it to checksum data in header data of BL1. 
If it is success, BL1 start. otherwise iROM will try second boot(4-bit SD/MMC) from SDMMC channel 2 port.

当加载BL1时,iROM检查头数据中BL1的大小,并将BL1复制到内部SRAM。

拷贝BL1后,将复制的BL1的iROM数据求和,并将其与BL1头数据中的校验和数据进行比较。

如果成功,BL1开始。否则iROM将尝试从SDMMC通道2端口进行第二次引导(4位SD/MMC)

在这里插入图片描述


B站朱友鹏老师.
参考文档:
《S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf》
《S5PV210_UM_REV1.1.pdf》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot SpringBoot 开发实用篇 6 监控 6.7 自定义端点

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇6 监控6.7 自定义端点6.7.1 问题引入6.7.2 自定义端点6.7.3 小结6.7.…

20221125使用PR2023自动识别obs-studio录屏生成的MKV视频的字幕

20221125使用PR2023自动识别obs-studio录屏生成的MKV视频的字幕 2022/11/25 19:07 01 obs.png obs studio (64bit) 02 obs 设置.png 03 obs 输出.png 04 obs默认为MKV.png 05 obs改mkv为MP4.png 警告:如果文件无法完成(例如&…

供应Alkyne-PEG-Biotin,Alk-PEG-Biotin,炔烃-聚乙二醇-生物素

炔烃-聚乙二醇-生物素是一种化学PEG试剂其英文名为Alkyne-PEG-Biotin(Alk-PEG-Biotin),它所属分类为Alkyne PEG Biotin PEG。 peg试剂的分子量均可定制,有:生物素-聚乙二醇5-炔烃、生物素-PEG 20-炔烃 、Biotin-PEG 2…

【kafka】九、kafka消费者分区分配策略

消费者分区分配策略 分区分配策略 一个consumer group中有个多个topic,一个topic有多个partition,所以必然会涉及到partition的分配问题,即确定哪个partition由哪个消费者进行消费。 kafka有两种分配策略,RoundRobin和Range Ro…

JAVA实训第三天

目录 方法引用 示例 接口 类 测试类 Stream ​编辑 Stream 的操作三个步骤 创建 Stream 的 4 种方法 常见Stream接口的继承关系 Stream的中间操作 中间操作常用方法 Stream的终止操作 Stream的终止操作-collect() 示例代码演示 作业 方法引用 在Lamda新特性的支持下&…

电商商家速看 这些TikTok选品玩法你知道多少?

调查报告显示,有3成的商家在TiTok平台上运营电商,谋求TikTok变现增长。在海内外文化习惯、市场环境存在较大差异的情况下,如何 TikTok选品是他们的主要困难。李先生是具有丰富经验的TikTok电商商家,他表示想要实现TikTok变现增长&…

【RuoYi-Vue-Plus】学习笔记 44 - XSS 过滤器以及 @Xss 注解简单分析

文章目录前言参考目录关于 XSS 攻击框架集成配置说明测试方法一:通过过滤器测试方法二:通过 Xss 注解功能调用流程分析XSS 过滤器启动初始化Form 表单请求过滤JSON 对象请求过滤Xss 注解校验前言 之前在对接口进行传参时发现富文本包含的标签全部被过滤…

成功解决 java.lang.NumberFormatException

急于查看问题原因的小伙伴,直接跳到 问题原因 标题。 问题背景: 今天在写条件查询时遇到这么一个错: ### Error querying databasecause: java.lang.NumberFormatException: For input string: "M ### Cause: iava.lang.NumberFormatE…

Ros驱动Ur5e过程 | 手把手教程 | Ros驱动真实机器人Ur5e | Ros与Ur5e建立通讯 | Ubuntu20.04驱动Ur5e机器人

目录 UR5e连接过程 安装ROS 安装moveit 电脑端UR机器人驱动安装 UR实体机器人-软件安装与通信建立 urcap软件安装 电脑端ip问题 需要指定临时ip的情况 不需指定临时ip UR机器人IP 机器人的启动 驱动UR机器人 电脑-ip : 192.168.56.1 ur5e-ip :192.168.5…

【STM32CubeMX】NRF24L01模块实现“1对1“及“1对多“无线通信

大家好,我是小政。本篇文章我将针对NRF24L01模块实现"1对1"及"1对多"无线通信的STM32CubeMX配置过程进行详细的讲解,让准备学习HAL库的小伙伴能够更好的理解STM32CubeMX如何配置。 NRF24L01模块实现"1对1"及"1对多&q…

【OpenCV-Python】教程:3-9 轮廓(5)轮廓层级

OpenCV Python 轮廓层次 【目标】 学习轮廓的层次关系 在前几个课程里面,学习了 cv2.findContours() 函数, 传递了参数 Contour Retrieval Mode . 通常是 cv.RETR_LIST or cv.RETR_TREE 工作的很好,但是他们是什么意思呢? hierarchy 到底是…

基于DMF推荐算法的推荐系统 代码+数据 (可作为毕设)

案例知识点 推荐系统任务描述:通过用户的历史行为(比如浏览记录、购买记录等等)准确的预测出用户未来的行为;好的推荐系统不仅如此,而且能够拓展用户的视野,帮助他们发现可能感兴趣的却不容易发现的item;同时将埋没在长尾中的好商品推荐给可能感兴趣的用户。DMF推荐方法…

C语言既然可以自动为变量分配内存,为什么还要用动态分配内存呢?

一、前言 不知道大家在学习C语言动态分配内存的时候有没有过这样的疑问,既然系统可以自动帮我们分配内存,为什么还需要我们程序员自己去分配内存呢? 如果想要弄清楚这些问题,我们首先就要了解静态内存和动态内存有什么区别&…

python学习笔记

第一个python程序 pycharm使用 pycharm下载链接: https://www.jetbrains.com/zh-cn/pycharm/download/#sectionwindows 1. 新建项目 右键test—> 点击new 输入文件名 运行 结果 2. 调节字体大小快捷键设置 右键添加鼠标快捷键 按住ctrl鼠标向上滑动 放…

计算机网络 应用层

概述 为特定应用程序提供数据服务,例如HTTP、FTP(File Transfer Protocol , 文件传输协议)、DNS (Domain Name System,域名系统)等。 域名系统 DNS DNS 全名叫 Domain Name Server,中文俗称“域名服务器” 在 Internet 上域名…

Docker搭建Nginx实现SpringBoot+Nginx集群

1,首先聊聊什么Nginx? Nginx 是一个高性能的HTTP和反向代理web服务器,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电…

linux三剑客awk、sed、grep与cut的总结

在Linux中,一切皆文件,对Linux的操作就是对文件的处理。对文件操作处理最重要的三个命令是grep、sed、awk,它们在业界被称为“三剑客”。 三剑客的功能非常强大,但它们各自有分别擅长的功能: grep擅长对文件或字符串进…

【操作系统】2.3 进程同步与互斥

这一节大概是操作系统中最难的一节了。 2.3.1 进程的同步与互斥 2.3.1 进程的同步与互斥_StudyWinter的博客-CSDN博客_进程同步思维导图 进程同步:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之…

C#界面里Form.Language 属性的使用

C#界面里Form.Language 属性的使用 现在面向全球化的应用软件、应用系统越来越多。 比如游戏正在走向全球化时代,很多游戏的服务器也会安装到各个国家去,也会请当地人来管理游戏的服务器。 这时开发的软件,就需要面向各种语言,比如英语、日语、阿拉佰语等等。 如果你正在…

什么叫共同富裕,刘强东给老板们打了个样

这两天,热搜上最火的男人,除了汪小菲,就是刘强东无疑了。 11月22日,刘强东发出了一封京东内部员工信,引发热议。 信里主要说了4点: 1、自明年1月1日起,为所有德邦员工缴齐五险一金&#xff1…