Uboot 和 Linux启动流程

Uboot启动流程

第一阶段:关闭看门狗,设置系统时钟,初始化RAM,复制第二阶段的代码到内存中,设置好栈,跳转到第二阶段的C语言入口点。

第二阶段:检测内存映射,将内核映像和要传给内核的参数从flash复制到内存中,,设置处理器为SVC模式,关闭MMU、缓存,调用theKernel函数,传入机器号和参数列表地址作为参数,跳转到内核在内存的地址,从而启动内核。


Linux内核启动

架构和开发板相关(汇编代码):

1.检测是否支持该架构,__lookup_processor_type,检测是否支持该机器。

2.建立一级页表,__creat_page_table

3.关闭Cache,使能Mmu。

4.复制数据段、清除BSS段、设置栈、保存机器ID到全局变量。

4.start_kernel

后续通用过程:

setup_arch,初始化CPU子系统,之后让内存和进程管理系统就位,解析uboot传给内核的参数,接下来启动外部总线和外部设备,最后一步是激活用户空间的Init进程,Init进程执行必要的服务和用户空间的脚本,根据配置文件,决定启动哪些程序,如shell、桌面。



Uboot 和 Linux启动流程,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。