S5PV210知识点--第五篇

一、内存地址映射

S5PV210属于ARM Cortex-A8架构为32位CPU,拥有32根地址线,32根数据线,属于它是拥有2^32bit的内存空间也就是4G的内存,分配如下图一、图二

三星官方关于S5PV210芯片内存地址映射图

图一
映射内存地址的详细介绍
图二

图一和图二都是S5PV210芯片的内存地址映射分配,我们可以清晰的看到各个器件的内存大小以及它们的地址的范围

几种重要的器件

  • ROM(只读存储器): 只能读出而不能写入信息,通常在电脑主板的ROM里面固化一个基本输入/输出系统,称为BIOS(基本输入输出系统)。其主要作用是完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统
  • RAM(随机存取存储器): 可以与CPU直接交换数据的内部存储器,特点是可以随时读写,速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质,与ROM最大的区别是数据的易失性
  • IROM: 完全与上面的ROM的一样,只不过它是集成在SOC里面的
  • IRAM: 同理,与上面的RAM是一样的,只不过是集成在SOC里面的
  • DRAM(动态RAM): 利用电容内存储电荷的多寡来代表一个二进制比特(bit)是1还是0,与SRAM相比,DRAM的优势在于结构简单——每一个比特的数据都只需一个电容跟一个晶体管来处理,DRAM拥有非常高的密度,单位体积的容量较高因此成本较低。但相反的,DRAM也有访问速度较慢,耗电量较大的缺点
  • SRAM(静态RAM): 所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持,SRAM具有较高的性能,但是它的集成度较低,功耗较DRAM大,价格也更贵
  • SRF: 特殊功能寄存器

二、内存外存

内存:内部存储器,主要是用来运行程序的,比如DRAM 、SRAM、DDR内存条

s外存:外部存储器用来存储数据的比如硬盘、Flash、Nand iNand····、 U盘、SSD固态硬盘和光盘等

  • NOR Flash: 一种非易失闪存技术,容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质
  • Nand Flash: flash存储器的一种,容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。
  • eMMC:采用统一的MMC标准接口, 把高密度NANDFlash以及MMCController封装在一颗BGA芯片中。针对Flash的特性,产品内部已经包含了Flash管理技术,包括错误探测和纠正,flash平均擦写,坏块管理,掉电保护等技术

CPU连接内存和外存的连接方式不同。内存需要直接地址访问,所以是通过地址总线&数据总线的总线式访问方式连接的(好处是直接访问,随机访问;坏处是占用CPU的地址空间,大小受限);外存是通过CPU的外存接口来连接的(好处是不占用CPU的地址空间,坏处是访问速度没有总线式快,访问时序较复杂)

常用系统的内外存使用情况

  • 单片机: 很小容量的NorFlash + 很小容量的SRAM
  • 嵌入式系统:因为NorFlash很贵,现在很多嵌入式系统倾向NorFlash,外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM

  • PC机:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM

三、S5PV210的启动过程

S5PV210使用的启动方式是:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM,启动过程如下图三

S5PV210启动过程

图三

①iROM可以做初始启动:初始化系统时钟,设备特定的控制器和启动设备
②iROM引导代码可以加载引导载入SRAM。引导加载程序称为BL1。然后在安全引导模式下,iROM验证BL1的完整性
③BL1将执行,BL1引导代码可以加载引导载入SRAM,引导加载程序称为BL2,然后在安全引导模式下验证BL2的完整性
④BL2将执行,BL2 控制DRAM控制器初始化,加载操作系统数据更快
⑤最后,跳转到操作系统的起始地址。这将为系统的使用创造良好的环境

启动大致过程

S5PV210内置了一块96KB大小的SRAM(叫iRAM),同时还有一块内置的64KB大小的NorFlash(叫iROM),启动大致过程

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

2. 从IRAM去运行刚上一步读取来的BL1(16KB),然后执行。BL1负责初始化NandFlash,然后将BL2读取到IRAM(剩余的80KB)

3. 从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束

S5PV210的开机图

在这里插入图片描述

第1次启动失败时的第2次启动顺序

在这里插入图片描述

几种不同的启动模式的设置图

在这里插入图片描述

本次学习之旅到此结束,希望文章可以帮到您

本章内容来主要来自朱有鹏嵌入式课程

四、对自己的一些话>

今天你学习了嘛,今天你写博客了嘛 – 2023-1-21

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值