ARM启动流程
S3C2440支持两种启动方式:norflash启动和nandflash启动。
一、norflash启动
NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。ARM处理器上电之后会从零地址去取指令,所以代码一定要放在norflash的最前端,处理器才能继续往下执行。
二、nandflash启动
NAND FLASH不像NOR FLASH那样可以直接访问,而是通过一些相关的寄存器进行访问。所以一开始处理器会将NAND FLASH中前4KB的代码拷贝至零地址处的stepping stone(垫脚石)中。这4KB的代码要完成两个任务:(1)对相关的硬件进行初始化 (2)将NAND FLASH中剩余的代码搬移到内存中,保证可以正常的从NAND FLASH启动。
S3C6410支持 种启动方式:NOR FLASH启动、ONENAND启动、MODEM启动、IROM启动。其中SD卡启动和NANDFLASH启动划分在IROM启动中。
从NORFLASH启动不再多说。这里主要说一下从NANDFLASH启动。首先他属于IROM启动,看下图。
我们知道处理器会从零地址去取指令,6410的地址布局如下所示
6410的零地址是一个镜像区域。当从IROM进行启动时,处理器会将IROM中的代码拷贝至这个镜像区域中,这里提到的代码就是bootloader0,他是处理器的厂家为我们固化好的这部分代码会先进行一些硬件的初始化,然后将NANDFLASH中前8KB的代码搬移到stepping stone中,称作BL1。接着,stepping stone中的代码会负责把剩余的bootloader(称作BL2)加载到内存中继续进行后面的工作。
最后是S5PV210的启动流程,前期都和6410没什么区别,只是210的stepping stone空间更大,为96KB。所以当BL2<80KB时,BL1会把BL2加载到stepping stone中运行,当BL2>80KB时,BL1将BL2加载到内存中运行。
如有问题或疑问欢迎指出。转载请注明出处!
ARM启动流程的更多相关文章
- Arm启动流程解析
谈到arm的启动流程不得不说的是bootloader,但是我这篇文章主要来谈谈arm启动流程的,所以bootloader只是跟大家简介一下就ok.这篇文章我会谈到以下内容: 1.bootloader简 ...
- 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 : -- u-boo ...
- ARM Linux从Bootloader、kernel到filesystem启动流程
转自:http://www.veryarm.com/1491.html ARM Linux启动流程大致为:bootloader ---->kernel---->root filesyste ...
- arm处理器启动流程分析
2440: 启动方式:nor , nand 地址布局: 启动流程: 开发板在上电后,会从0x0地址处运行. 如果从nor flash启动,则代码要放在nor 的0地址处: 如果从nand flash启 ...
- arm裸机程序启动流程
arm裸机程序启动流程 1373 Linux系统的引导: 一个SOC拿过来,它是有内部BROM和SRAM的,这个BROM中会固化芯片厂商的最初引导代码,我们叫它RBL(ROM boot loader) ...
- ARM处理器启动流程
根据<<芯片手册>>查看相关内容: 1.启动方式 2.地址布局 3.启动流程
- 【ARM】S3C6410芯片的启动流程
S3C6410芯片的启动流程 (1) 上电后首先运行iRom(BL0)内的代码,主要完成时钟和看门狗等外围器件的初始化.(2) 拷贝SD卡或者NnadFlash中的前4k(BL1)代码到片内ram(垫 ...
- [国嵌笔记][029][ARM处理器启动流程分析v2]
2440启动流程 启动方式:nor flash启动.nand flash启动 地址布局: 选择nor flash启动时,SROM(nor flash)地址为0x00000000 选择nand flas ...
- 嵌入式Linux驱动学习之路(五)u-boot启动流程分析
这里说的u-boot启动流程,值得是从上电开机执行u-boot,到u-boot,到u-boot加载操作系统的过程.这一过程可以分为两个过程,各个阶段的功能如下. 第一阶段的功能: 硬件设备初始化. 加 ...
随机推荐
- C# 二叉查找树实现
BuildTree 代码1次CODE完,没有BUG. 在画图地方debug了很多次.第一次画这种图. 一开始用treeview显示,但发现不是很好看出树结构,于是自己动手画了出来. using Sys ...
- Simple screenshot that explains the singleton invocation.
Here is the code: /* Some class,such as a config file,need to be only one.So we need to control the ...
- mysql locktables
SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, TIMESTAMPDIFF( ...
- php验证是否为手机端还是PC
<?php $forasp = strtolower($_SERVER['HTTP_USER_AGENT']); if(strpos($forasp,'mobile')==true) { ech ...
- iOS定位问题解决方案
在需要用到定位服务时,需在info文件中加入: 1.NSLocationWhenInUseUsageDescription(类型为:string,值为:”我们需要通过您的地理位置信息获取您周边的相关数 ...
- 读懂IL代码(二)
上一篇提到了最基本的IL代码,应该是比较通俗易懂的,所以有了上一篇的基础之后,这篇便要深入一点点的来讲述了. 首先我必须再来说一些重要的概念: Evaluation Stack(评估栈):这是由.NE ...
- 挖潜无极限———数据挖掘技术与应用热点扫描[ZZ]
“我们把世界看成数学,并且把你也看成数学”——用这句话来说明数据挖掘技术的复合性和应用的广泛性似乎再好不过.如今,虽然一些行业在应用这一技术上仍然缺乏足够的主动,但一个不能阻挡的趋势是:已经有越来越多 ...
- Extjs4 关于设置form中所有子控件为readOnly属性的解决方案
之前在网上找了一堆,但那些确实没法用,后来考虑了一下,发现主要是网上提供的假设form中只有一层控件,没有考虑到布局稍微复杂的form情形,此处采用递归的形式实现对form中所有控件(grid及but ...
- python - zipfile
参考:http://www.cnblogs.com/sislcb/archive/2008/11/28/1342822.html zipfile - python处理zip文件的压缩与解压 ZipFi ...
- .NET序列化的一点技巧
介绍 序列化是将对象状态转换为可保持或传输的形式的过程.序列化的补集是反序列化,后者将流转换为对象.这两个过程一起保证数据易于存储和传输. .NET Framework 提供了两个序列化技术: 二进制 ...