kernel启动流程
来源:互联网 发布:淘宝8.8 编辑:程序博客网 时间:2024/05/29 02:46
ROM code:
没有看过代码,在固化ROM里执行,估计是初始化一些必要的东西,然后把bootloader加载到sram里。sram可以直接总线访问,ddr需要初始化才能使用
bootloader:
初始化芯片和其他,ddr_init,把uboot从flash里加载到ddr里准备执行,跳转到uboot
uboot
start.s->board.c->main.c
start.S
更改cpsr寄存器的值,实际上就是关闭irq和fiq,切换模式到el1。
flush dcache,disable icache,invalidate tlb。
跳转到lowlevel_init函数。
lowlevel_init:
gic_init->enable irq in el3->push slave cpu to wait main cpu correct setup spin table ->disable irq in el3
main cpu ->b main
跳转到main函数:
arm/arm/lib目录下的crt0_64.S里的_main函数:
为gd_t分配stack空间跳转到board_init_f执行
从CONFIG_SYS_INIT_SP_ADDR地址开始分配gd_t大小的空间暂时放gd_t。
CONFIG_SYS_INIT_SP_ADDR为ram高位物理地址顶减去(4K+gd_t大小)
0 0
- kernel启动流程概要
- Kernel启动流程
- MTk kernel启动流程
- kernel启动流程概要
- kernel启动流程
- kernel启动流程
- kernel 启动流程
- linux kernel启动流程
- LiteOS Kernel启动流程
- [kernel 启动流程]系列
- kernel启动流程第二阶段
- Uboot启动流程和Kernel启动流程
- linux uboot,kernel启动流程
- 【转】Android kernel启动流程
- ARM linux kernel启动流程
- Android启动流程 -- linux kernel
- Linux kernel启动流程简介
- Linux kernel启动流程第一阶段
- selenium---sl4j日志输出
- 如何在安卓中把方形图变成圆形图
- 第十一周补充项目4-日期和时间类
- JavaScript事件委托的技术原理
- nyoj559 报数游戏
- kernel启动流程
- iframe跨域互相访问
- Asmack长链接框架使用
- Fast R-CNN笔记
- Java 设计模式-策略模式(Strategy)Android讲解
- Linux Shell编程(第一天)____入门
- 关于对ctype.h库中函数实现的理解
- HashMap深度解析(二)
- Matlab截图小工具