单片机
返回首页

三星S5PV210学习笔记(1)初识S5PV210

2022-08-01 来源:csdn

关于S5PV210的更多介绍,可查阅相关文档

S5PV210_UM_REV1.1

S5PV210_iROM_ApplicationNote_Preliminary_20091126


(1)概述

S5PV210是三星公司推出的一款32位精简指令集的为移动设备和通用程序领域提供高性价比、低功耗、高性能的解决方案。它内置ARM Cortex-A8内核( V7-A架构)。


为了能在3G和3.5G通信服务提供最优的硬件性能,S5PV210采取了64-bit内部总线架构。这包括许多为像进行移动视频处理、播放控制和裁剪等任务提供了强力的硬件加速器。内置的复用格式编解码器(MFC)能够进行MPEG-1/2/4、H.263和H.264的编解码,以及VC1的解码。这些硬件加速器还支持实时视频交流和模拟电视的输出,HDMI输出NTSC或PAL。


S5PV210还提供了外置储存器的接口。其内存系统为外置的Flash/ROM存储器提供并行接口,DRAM接口。而且DRAM接口支持LPDDR1、DDR2、LPDDR2。

Falsh/ROM接口支持NAND Flash、Nor Flash、OneNAND、SRAM以及ROM类型的外置存储器。


为了减少系统功耗以及加强整体的功能性,S5PV210包含了TFT 24位真彩LCD控制器、摄像机接口、MIPI DSI、CSI-2、电源管理器、ATA接口、4个串口、24通道DMA、5个定时器、通用I/O端口、3个I2S、S/PDIF、3个I2C总线接口、2个HS-SPI、USB Host 2.0、USB 2.0 OTG(480Mbps),4个SD卡接口、4个PLL。


S5PV210芯片的整体架构如下图1-1所示▼:

这里写图片描述

至于各项功能的细节描述,看文档吧。


(2)内存分布

S5PV210支持的内存范围为0x00000000~0xFFFFFFFF,共4GB大小。其内存分布如下图2-1所示▼:

这里写图片描述

具体每个内存块的大小如下表所示▼:

这里写图片描述

其中,内置存储器的分布如下图2-2所示▼:

这里写图片描述

(3)S5PV210的启动流程

由上述的内存分布可以看出,S5PV210内置了64KB的ROM和96KB的SRAM。启动时,内置的64KB的ROM和96KB的SRAM区域就会被使用。


内置ROM区域(后简称iROM)的启动代码由三星官方提供,使用者一般不可更改。为了保证能安全地启动,S5PV210会首先从iROM启动,并且启动过程中使用e-fuse信息(一段被编程入内存后便不可再更改的数据)。


一般地,下列各种类型的外部存储器都可作为启动设备:


• General NAND Flash memory

• OneNAND memory

• SD/ MMC memory (such as MoviNAND and iNAND)

• eMMC memory

• eSSD memory

• UART and USB devices


一般的,linux+arm嵌入式中,外部存储器中固化着Boot Loader,而iROM和iRAM都是为了能够正确并安全地启动Boot Loader而存在的。


启动代码有3部分,分别是iROM代码(简称BL0)和Boot Loader代码(其中Boot Loader代码分为 2部分,简称BL1和BL2):

① iROM代码:小而简单的平台独立的代码,被固化在内置存储器中;

② BL1代码:小而简单的平台独立的代码,被固化在外部存储器中;

③ BL2代码:大而复杂的平台相关的代码,被固化在外部存储器中。


S5PV210的启动流程如下图所示▼:

这里写图片描述

特别地,在SRAM区域,BL1最大不超过16KB,BL2最大不超过80KB。


流程简述:


iROM代码即BL0代码被固化在内部64KB ROM中,其作用是初始化基础的系统功能,比如时钟、栈和堆等;

BL0代码在内部96KB的SRAM中运行。根据OM引脚的配置,选择从何种启动设备中读取BL1镜像到SRAM中并执行(此过程中可对BL1镜像进行校验);

BL1从启动设备中读取BL2镜像到SRAM中并执行(此过程中可对BL2镜像进行校验);

BL2主要进行初始化系统时钟、串口、DRAM控制器等。然后从启动设备中读取OS镜像到外部的DRAM中并执行(此过程中可对OS镜像进行校验);

启动完成后,BL2跳转至OS。

启动部分就结束了。


具体地BL0、BL1和BL2做了什么,如下图所示▼:

这里写图片描述

其中,iROM即BL0的工作如下:

1. 关闭看门狗;

2. 初始化指令缓存控制器;

3. 初始化栈和堆区域;

4. 校验安全码;

5. 设置时钟分频器、锁定时间、PLL以及源时钟;

6. 校验OM引脚和从启动设备(区块0)加载16kb大小BL1到iRAM的0xD0020000处执行;

7. 若安全启动成功,则执行完整校验;

8. 若完整校验通过,则在iRAM中跳转到BL1部分(0xD0020010处执行)


也就是初始化环境–>加载镜像–>校验镜像–>跳转至镜像并执行。


站在内部SRAM即iRAM的角度,流程有▼:

1. 从启动设备加载BL2到iRAM;

2. 若安全启动成功,则进行完整校验;

3. 若完整校验通过,则在iRAM中跳转到BL2部分(跳转地址由软件代码中设置);

4. 若完整校验不通过,则停止BL1;

5. BL2初始化DRAM控制器;

6. 从启动设备(区块1)中加载OS镜像到外部DRAM;

7. 在外部DRAM中跳转到OS代码(0x20000000或0x40000000)。


至于BL1和BL2具体做了什么,这视Boot Loader的代码而定。因为Boot Loader有许多种,比如ARMBoot、U-Boot等等。

S5PV210使用的Boot Loader是U-Boot,所以这部分便留到uboot启动分析再写。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

最新器件
精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 非常简单的150W功放电路图

  • 优化电路板布局的简单方法

  • 一个简单的立体声平衡指示器电路

  • 电谐波图形均衡器示意图

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章