mini2440之启动机制
来源:互联网 发布:免费游戏挂机软件 编辑:程序博客网 时间:2024/05/18 12:38
arm启动的时候内部结构大致如上:
arm core:为执行汇编程序的核心部件
rom:厂家固化的代码,用于在arm上电后执行,将nand flash中大小如sram的前面代码(bootloader代码)拷贝到sram中,并cpu跳到sram的0x0位置
sram:在执行nand flash中前小段代码(4kb左右),初始化sdram/ddr,并将nand flash中剩余的bootloader代码拷贝到sdram中,最后跳入sdram中继续执行
sdram:即为内存,当从sram中进入sdram后,开始执行bootloader的其余代码,加载内核到内存(内核存在于内存),加载完后进入内核继续正常运行
Nor flash:带有通用的sram的接口,可以直接访问内存,启动时候零地址指向norflash,适合做代码存储并EIP的
nand flash:常用于存放较大的数据
mini2440启动时,从0x00开始执行,其分为nand flash和nor flash上启动。
1.Nor flash的有自己的地址线和数据线,可以采用类似于存储器的随机访问方式,在nor flash上可以直接运行程序,所以nor flash可以直接用来做boot,采用nor flash启动的时候会把地址映射到0x00上。mini2440就是直接把vivi直接烧录在nor flash上。
2.Nand flash是IO设备,数据、地址、控制线都是共用的,需要软件区控制读取时序,所以不能像nor flash、内存一样随机访问,不能EIP(片上运行),因此不能直接作为boot。
Mini2440把Bootloader烧到nand flash上启动,因为在mini2440里有一个内置的SRAM,叫做stepping stone,系统启动加电后,会把nand flash上的起始4KB的内容拷贝到SRAM里执行,这样就实现了从nand flash启动。如果bootloader小于4KB的话(像vboot),在SRAM里就能boot,大于4KB的话(u-boot,vivi),在SRAM里做一些基本初始化后,再把bootloader的剩余部分拷贝到SDRAM里(>0x30000000)。
我们使用mini2440的时候,经常通过nor flash启动,进入vivi的菜单(mini2440的Nor flash已经烧录好了vivi),之后通过vivi的usb下载功能,把其他的bootloader下在到nand flash里,下载完成后,再通过nand flash启动,测试我们的bootloader。
- mini2440之启动机制
- mini2440启动代码分析之第九篇
- mini2440启动代码分析之第十篇
- mini2440启动
- 友善之臂 mini2440 root_qtopia 文件系统启动过程分析
- mini2440启动代码分析之第三篇(IMPORT)
- mini2440启动代码分析之第十一篇(完结)
- mini2440启动代码分析之第三篇(IMPORT)
- 友善之臂 mini2440 root_qtopia 文件系统启动过程分析
- mini2440系统移植篇之kernel启动流程
- mini2440系统移植篇之init启动流程
- Mini2440启动代码编写
- mini2440启动过程
- Mini2440启动代码详解
- mini2440启动代码(1)
- mini2440更换启动logo
- mini2440启动代码分析
- Mini2440 SDcard启动分析
- mvc改变路由
- js验证表单大全
- 解斐波那契数列
- JS的Document属性和方法
- Linux 安装PHP配置参数
- mini2440之启动机制
- oracle 12c EM 安装 WebTier Could Not Be Started
- 算法题笔记
- MongoDB管理与开发精要《红丸出品》5.3 存储过程
- 数据库可以创建在网络路径
- Java内嵌浏览器插件方法( 浏览器组件介绍)
- Flex 层级概念的分析--setElementIndex()与swapElements()与getElementIndex()的解析
- 系统管理员要学习什么编程语言
- 短时间让大家对C++ STL有所学习