当前位置:首页 > 单片机 > 单片机
[导读]常用器件特性内存:SRAM 静态内存 特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用DRAM 动态内存 特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。单片机中:内存

常用器件特性

内存:
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使用的启动方式是:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM

S5PV210启动过程详解概述

关于S5PV210的启动过程和方式,samsung专门提供了一份文档,《S5PV210_iROM_Application Note》,以下启动过程分析大多翻译自这本手册。

在这张图中可以看出S5PV210的启动可大致分为五个步骤
1、iROM阶段(BL0)
2、BL1阶段
3、BL2阶段
4、拷贝OS到SDRAM
5、启动OS

samsung在S5PV210内部的IROM中固化了一段代码,用于初始化时钟,识别用户选择的启动模式,并从相应的地方拷贝boot-loader第一阶段代码到SRAM中运行。此外samsung在S5PV210内部也集成了96KB的内部SRAM,由于SRAM不需要初始化,上电就能使用,因此可当作DRAM初始化之前的代码运行空间。

iROM都做了些什么?

1、关闭看门狗;
2、初始化icache;
3、初始化栈;
4、初始化堆;
5、初始化块设备拷贝函数;
6、初始化PLL,设置系统时钟;
7、拷贝BL1到内部的SRAM区域;
8、检查BL1的校验和;
9、检查是否是安全启动模式;
10、跳转到BL1的起始代码处。

刚开始看S5PV210的启动过程时有一个地方一直想不明白:Boot-loader代码都在Flash中存储着,iROM是怎么不初始化Flash并将BL1拷贝到SRAM中运行的(Nand Flash 的初始化代码在BL1阶段才执行),后来通读了《S5PV210_iROM_Application Note》后才明白。iROM中固化了一系列的块设备拷贝函数,这个块设备拷贝函数,就是用来初始化不同种Nand并拷贝代码的,关于这些函数手册2.7节有介绍

S5PV210启动流程图


从图可以看出210在启动的时候首先会判断,系统是从休眠中唤醒还是刚上电,从而决定是重新引导系统还是直接跳转到OS继续执行休眠前的代码。

然后还有一个”Checksum%20OK?”的判断,如果BL1的代码检验出错会自动跳转尝试用“2nd”方式启动。

S5PV210还提供了一个”Secure%20Boot”%20安全启动的模式。

S5PV210提供多种启动方式,其中”1st启动”可以通过引脚选择,当”1st启动”失败后会尝试从”2nd启动”,也就是从SD卡通道2,通过SD卡启动方式启动。如果”2nd启动”仍然失败,会尝试从“Uart%20boot”启动,如果仍然失败将会尝试从%20“USB%20boot”启动。

iROM%202nd%20boot-up%20sequence%20when%201st%20bootfail%20(当1st启动失败后的2nd启动流程)

启动方式选择引脚的配置

bootloader、Kernel、filesystem等在nand中的分布

S5PV210的启动方式很多种,第一次学习的理解就这么多,做个记录,相信随着学习的深入理解也会不一样,到时候再回来更新。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

分享这篇文章,谈一下STM32启动流程。如果读者朋友已经有过汇编相关基础,能够够好理解本文内容。汇编语言是比C语言更接近机器底层的编程语言,能让我们更好的理解和操纵硬件底层。STM32的三种启动模式下好程序后,重启芯片时...

关键字: STM32 启动过程 汇编代码

0xFFFF:0x00000xF000:0xE05B0x0000:0x7C00在第一篇文章中,我们就提到,现代操作系统是从最古老的8086系统一步一步发展而来的。处理器厂商为了向后兼容,很多底层相关的原理都是一样的(如果...

关键字: 启动过程

存储控制器S3C2440A是32位处理器,理论上拥有32根地址线,寻址空间0x00000000~0xFFFFFFFF,即4G而实际上,S3C2440A只拥有27根地址线,实际物理寻址空间为0x00000000~0x07F...

关键字: ARM s3c2440a 存储控制器 启动过程

汇编是从org 0000h开始启动,那么keil c51是如何启动main()函数的?keil c51有一个启动程序startup.a51,它总是和c程序一起编译和链接。下面看看它和main()函数是如何编译的;//主函...

关键字: C51 c程序 keil 启动过程

一、STM32启动文件详细解析STM32启动文件详细解析(V3.5.0) 以:startup_stm32f10x_hd.s为例;********************(C)COPYRIGHT2011STMicroele...

关键字: STM32 启动过程

内存和外存的概念内存内存指 内部存储器,运行程序的地方 RAM外存外存指 外部存储器, 保存数据或者文件的地方 ROMCPU连接内存和外存的方式内存通过数据总线和地址总线直接和CPU 相连接。好处 : 访问速度快,操作方

关键字: arm裸机 CPU 存储器

注:此文为部分摘录,并且在原文基础上有改动link这几天一直在摸索s3c2410的启动过程,几天的困惑终于在昨天晚上基本解决.下面详细分析一下它的最前面的启动过程.1.在板子上电的一开始,首先自动判断是否是autoboo...

关键字: nandflash s3c2410 启动过程

相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务...

关键字: STM32 启动文件 启动过程 固件库

嵌入式Linux根文件系统的设计与实现 1、Linux文件系统基本概念文件系统类型:FAT32、NTFS、EXT2、 EXT3、 JFFS2、 YAFFS2、 NFS Linux根文件系统目录结构:(

关键字: s5pv210 文件系统

ARM的约定byte 8bitshalfword 16bitsword 32bitsARM Core 提供的指令集ARM指令集 32bitsThumb 指令集 16bitsThumb2 指令集 16&32bits...

关键字: arm裸机 寄存器 工作模式
关闭
关闭