Android系统启动过程
来源:互联网 发布:可靠性分析软件下载 编辑:程序博客网 时间:2024/06/14 12:27
系统启动过程与内核并不属于Android,根据MTK的流程来做一个简单总结
本来打算根据MTK的源文档做总结,但是发现另一个blog已经做了这个工作,自认为不可能做的更好,引用其连接吧!
Android启动pre-loader
Android启动U-Boot
MTK文档给出的流程图:
主要分为五个部分(代码包):
1、 Boot code
2、 Preloader
3、 U-Boot
4、 Kernel
5、 Ramdisk
涉及到的硬件有四个:
ROM、SRAM、DRAM、NAND
先分析四个硬件,都是存储器:
ROM固化存储器,存储固定的code,不能被擦除
SRAM随机存储器,存储速度很快,掉电存储信息丢失 特点:存储容量小,读写速度快
DRAM随机存储器,存储速度一般,掉电存储信息丢失 特点:存储容量大,读写速度慢
NAND和emmc作用一样,做flash使用,掉电存储信息不丢失
SRAM与DRAM就是 内存,NAND(或者emmc可以代替它) 是外存
根据流程图,看一下启动过程:
1和2 设备上电后,Boot ROM开始运行。
3 Boot ROM初始化NAND
4 Boot ROM从NAND中加载pre-loader到内部SRAM(ISRAM)中,执行pre-loader
5 pre-loader加载U-Boot到RAM中
6 执行U-Boot
7和8U-Boot从NAND中加载引导镜像(boot image),包括linux内核和ramdisk
9 U-Boot跳转到linux内核并执行
具体的工作如下:
Ramdisk作用: ramdisk.img中主要是存放android启动后第一个用户进程init可执行文件和init.*.rc等相关启动脚本以及sbin目录下的adbd工具
————为什么要使用SRAM与DRAM,使用一个DRAM是否可以?
可以!如此可以把 Preloader和U-Boot做在一起,SRAM最主要的作用在于高速传输,在内存管理中,使用 段/页式,多级页表就是存储在SRAM中;C语言的局部快速处理操作也是由于SRAM存在实现的。SRAM可以极大的增加CPU的处理速度,解决CPU处理速度与DRAM读写速度极度不匹配的现象。
- android 系统启动过程
- Android 系统启动过程
- Android系统启动过程剖析
- Android系统启动过程浅谈
- Android 系统启动过程
- Android系统启动过程剖析
- Android系统启动过程
- Android系统启动过程
- Android系统启动过程分析
- Android系统启动过程浅谈
- Android系统启动过程
- Android系统启动过程
- Android系统启动过程浅谈
- Android系统启动过程
- Android系统启动过程
- Android系统启动过程简介
- Android系统启动过程
- Android系统启动过程
- redis 常用方法
- 遍历Map的四种方法
- 8天学通MongoDB——第七天 运维技术
- fragment简单使用
- C# 导入Excel文件和数据库文件的对比
- Android系统启动过程
- 关于IE6/IE7中浮动元素margin-bottom值失效的问题解决办法。
- 【深度学习】残差结构:1000层网络
- oracle定时备份脚本
- HttpClientUtil-用于后台发起请求
- php 400 ,500错误
- 51nod oj 1262 扔球 【容斥定理||欧拉定理】
- nvm nodejs npm 环境配置(个人学习中...)
- Day45、《c++小项目----薪酬计算》、正则表达式