bootloader启动过程分析
来源:互联网 发布:mac双系统 分区 编辑:程序博客网 时间:2024/04/30 06:44
由于bootloader的实现依赖于CPU的体系结构,因此大多数的bootloader都分为stage1和stage2两大部分:依赖于CPU体系架构的代码同城携程短小精悍的汇编代码,放在stage1中,为了实现更复杂功能的代码都使用C语言,方便移植和读,一般放在stage2中。具体的启动过程如下:
1、stage1中的动作:
硬件设备初始化;
为加载stage2准备RAM空间;
复制stage2到RAM中;
初始化堆栈;
跳转到stage2的c入口。
实现的功能:硬件初始化:屏蔽了bootloader启动过程中的所有中端,设置cpu的速率和时钟,完成RAM初始化,关闭CPU内部指令和数据缓存。
复制stage2到RAM,设置堆栈指针sp,跳转到c入口 。
2、stage2中的动作:
初始化本阶段需要使用的硬件;
检测系统内存映射;
复制内核和根文件系统到RAM中;
设置内核启动参数;
调用内核。
实现的功能:硬件初始化:初始化串口;
加载内核镜像;
设置内核启动参数;
调用内核:CPU寄存器设置:R0=0;R1=机器类型ID;R2=启动参数标记列表在RAM的起始地址;
CPU模式设置:禁止中断(IRQ和FIQ),是CPU处于SVC模式;
MMU和缓存的设置:必须关闭MMU和数据缓存,指令缓存可以自主选择。
- BootLoader启动过程分析
- BootLoader启动过程分析
- bootloader启动过程分析
- BootLoader启动过程分析
- BootLoader启动过程分析
- Bootloader初始化启动过程分析
- 【嵌入式】bootloader启动过程分析
- BootLoader的启动过程分析
- Bootloader初始化启动过程分析【转】
- 嵌入式Linux启动过程分析3-bootloader
- [转载] linux启动流程分析(1)---bootloader启动内核过程
- linux启动流程分析(1)---bootloader启动内核过程
- bootloader启动过程
- Bootloader启动过程
- Bootloader的启动过程
- Bootloader启动过程
- Bootloader启动过程
- BootLoader启动过程
- 杭电1829 并查集的应用
- wikioi 1306 机智Trie树
- 微信开发学习 OAUTH2.0 搭配事件推送
- Oracle常用命令
- greensock GSAP强劲的动画引擎
- bootloader启动过程分析
- 嵌入式开发板上挂载U盘
- Android的init过程:init.rc解析流程
- FreeBSD升级及pkgng
- 求和号
- 11. JAVA常用类库 Part 5 (正则表达式、定时调度、本章要点) ----- 学习笔记
- 【深入Java虚拟机】之四:类加载机制
- android中回调函数
- mysql执行的sql脚本中注释怎么写