Uboot启动流程和Kernel启动流程

/**********************Uboot启动流程(分为两部分)**********************/


第一部分(放在start.s中,汇编)

1).定义入口(通过链接器脚本来完成)

2)设置异常向量

3)设置CPU速度、时钟频率和中断控制寄存器

4)初始化内存控制器(MMU)

5)将ROM中的程序复制到RAM中

6)初始化堆栈

7)转到RAM中执行,该工作可使用指令 (ldr pc来完成

第二部分(C语言部分)

1)调用一系列的初始化函数

2)初始化Flash设备

3)初始化系统内存

4)如果目标机有NAND设备,初始化

5)如果目标机有显示设备,初始化

6)初始化相关网络设备,填写IP,MAC地址等

7)进入命令循环(即整个boot的工作环境),接收用户从串口输入的命令,然后进行相应的工作


/***********************kernel启动流程(分为两部分)***************************/

arm Linux 内核启动流程(分为三个阶段)

第一阶段:内核的重定向和内核的自解压

第二阶段:执行没有压缩的内核的汇编代码部分

1)获取CPU信息

2)检查平台设备号

3)创建页表

4)打开内存控制器(MMU)

5)清除BSS段

6)执行内核C语言部分入口函数

第三阶段:

1 )  获取Uboot给内核传递的参数

2)控制台初始化

3)执行init命令

4)挂载文件系统

5)执行用户空间的第一个程序



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值