S3C6410的IROM启动模式
********************************LoongEmbedded********************************
作者:LoongEmbedded(kandi)
时间:2011.7.26
类别:WINCE bootloader开发
********************************LoongEmbedded********************************
IROM启动(internal ROM Booting),IROM启动是指从OneNAND、SD/MMC卡和NAND Flash存储设备启动的方式,见下图,描述了6410支持的启动模式。
图1
1.IROM启动方式的图解
图2
上图的启动流程根据进一步细化为下面的流程,结合图1和图2理解:
1) 处理器上电后,当OM[4:1]=1111时,执行IROM中的启动代码(boot codes),这个启动代码称为BL0,它具体会做一些初始化的工作。
2) 根据GPN[15:13]管脚的设置,假如是图1中标识的NAND启动介质,则GPN[15:13]=101,这样BL0就会从BL1中读取前4KB的程序,也就是从NAND的第0个block中读取第0和第1页这4KB的程序到Stepping Stone的(0x0C000000)地址内存处运行,这4KB的程序(在Real6410开发板中式nbl.nb1,大小为4KB)是去掉.rdata部分的镜像文件。
3) BL1可以初始化系统时钟,UART,SDRAM等设备,然后拷贝Bootloader2(BL2)到SDRAM的(0x800000000)地址内存处。
4) 然后跳转到SDRAM中的BL2继续运行,BL2支持更强大的功能,在此开发板设计中,BL2拷贝eboot到SDRAM的(0x8003000)地址内存处。
5) 接着跳转到SDRAM中的eboot中继续运行,其中eboot进一步初始化硬件和把WINCE内核镜像拷贝到SDRAM的(0x80100000)地址内存处
6) 最好在SDRAM中开始执行NK。
在上面整个启动的过程中,IROM是最先被运行的,它会首先做一些初始化,具体IROM的流程如下:
1) 禁用Watch-dog
2) 初始化TCM
3) 初始化设备拷贝函数,用于拷贝BL1到SteppingStone中
4)初始化栈区域
5) 初始化PLL
6) 初始化指令Cache
7) 初始化堆区域
8) 拷贝BL1到SteppingStone中
9) 验证BL1
10) 跳转到SteppingStone中运行
2. IROM启动方式的流程图
为了更好理解IROM启动方式的流程,看下面的流程图:
图3
3.基于NAND Flash的 IROM启动方式的启动块分配(Boot Block Assignment)
图4
S3C6410的IROM启动模式相关推荐
- S3C6410启动模式介绍
目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动.我认为S3C6410的User Manu ...
- android+rom+bootloader+flash,Android ROM开发(4) bootloader 三种启动模式
Andrew Huang 转载请注明作者及网址 HTC手机中用的bootloader称为HBoot,不知道是不是HTC Bootloader 之意,从官网的源码看这个bootloader不象是u-bo ...
- android rom 工作,Android ROM开发(4) bootloader 三种启动模式
Andrew Huang 转载请注明作者及网址 HTC手机中用的bootloader称为HBoot,不知道是不是HTC Bootloader 之意,从官网的源码看这个bootloader不象是u-bo ...
- Activity的四种启动模式
standard:标准的启动模式,默认启动模式.启动一个activity就会创建该activity的实例. singleTop:如果启动的activity已经位于栈顶,那么就不会重新创建一个新的act ...
- andorid 启动模式面试题
现在有四个activity a,b,c,d ,设置a为标准模式,b为singletop模式 c设置singletask模式,d设置SingleInstance 模式 a启动b ,b 启动 c ,c启动 ...
- activity 启动模式_腾讯大牛:你根本不懂Activity!
码个蛋(codeegg)第 583 次推文 作者:厘米姑娘 原文:https://www.jianshu.com/p/602b1ec4ca7a 在之前的Activity篇主要学习Activity的生命 ...
- #读书笔记 Android-Activity启动模式
什么是Activity的启动模式?当启动一个Activity的时候,系统会创建一个实例,并把它放入到一个任务栈中,至于如何存放,就是由这个启动模式来决定的.Android系统支持多任务,所以系统中会同 ...
- Centos6,7默认启动模式的更改
有时候我们想以为图形页面启动,启动后直接到图形页面,但是有时候也想启动后直接进入文本页面,我们只需要修改init即可: Centos6启动模式配置文件路径:/etc/inittab Centos7启动 ...
- Android入门:Activity四种启动模式
2019独角兽企业重金招聘Python工程师标准>>> 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在Android Manifest.xml中的标签的and ...
最新文章
- 自动换行的draw2d标签
- AS 4.7安装yum
- django性能优化缓存view详解
- Devstack配置负载均衡,负载均衡版本V2
- Python 数据结构视频教程一
- arp 华为 查看 路由器_华为路由器运行状态查看-路由器
- 为什么vsdebug没有生成obj文件_用iPad实时扫描生成模型??两款实用App
- 全排列递归实现(二)
- 昨天,JetBrains 推出“下一代 IDE”,对标VS Code?快看看有哪些值得期待的功能!...
- ios开发之多线程---GCD
- 推荐使用一个modbus调试助手
- dnf mysql密码多少_CentOS7 使用 dnf 安装 mysql
- 基于Matlab/GUI界面设计的参数在线整定与优化(一)
- 第二章 03 藤蔓生长
- 机械臂运动学入门(二)
- DayDayUp:心灵鸡汤之天空飘来五个字~那都不是事(一问一答告诉你什么是高层次的认知)
- 大数据处理常用的数据结构
- Free Video to JPG Converter(视频转图片的软件)简体中文 | 如何将视频转图片
- Java多线程与并发编程终极宝典
- 【大数据基础】基于 TMDB 数据集的电影数据分析
热门文章
- continue和break的区别
- php与js的关系,Php与Js的交互
- java session原理_java web开发—session的工作原理总结
- 计算机主机清理步骤,怎么清理主机灰尘 清理灰尘教程
- 装了mysql但是服务里没有反应_Mysql安装后在服务里找不到和服务启动不起来的解决方法...
- python可以播放音乐吗_详解python播放音频的三种方法
- python采集_Python采集实例2
- Android OkHttp完全解析
- oracle使用打开数据库文件,Oracle技术网—某个数据文件损坏,如何打开数据库
- mysql级联查询_mysql 各种级联查询后更新(update select)