Linux系统启动流程分析

本文发布时间: 2019-Mar-22
一 系统上电和启动ROMNOR Flash作为启动ROM的系统启动过程NOR Flash开头处存放启动代码,程序从NOR Flash开始处启动。 配置EMI寄存器,设置好各存储器的地址和存取规则。 配置电源管理模块,各模块上电。 启动代码将位于NOR Flash中的正式执行代码复制到内存中,以提高执行效率。 设置PC指针,指向NOR Flash中固定地址。 设置地址映射,用0地址映射到内存RAM空间。 设置PC指针,指向RAM中初始化代码,开始执行代码。NAND Flash作为启动ROM的系统启动流程上电初始,DMA默认设置将存储在NAND Flash中第一页的数据搬运到内部RAM中,然后设置PC到内部RAM开始处的地址,开始执行代码。 在启动代码中设置中断向量和硬件配置等。 将执行代码搬运到外部SDRAM或DDR=RAM,留出启动代码的位置。 将启动代码搬运到SDRAM或DDR-RAM中首址。 设置Remap,将0地址重新映射到SDRAM或DDR-RAM首地址。 设置PC指针,开始执行正式的执行代码。二 Bootloader引导三 Linux内核引导非压缩内核:Image压缩内核:zImage内核初始化 设备初始化 启动内核 挂载文件系统 启动用户空间进程四 init初始化系统服务初始化log系统 解析/init.rc和/init.%hardware%.rc文件,执行early-init,并执行解析出的init动作、early-boot动作、boot动作和execute property动作。 进行设备初始化,属性服务器初始化并开启属性服务。 进入无线循环以等待属性设置或子进程退出事件。作者:郭孝星微博:郭孝星的新浪微博邮箱:[email protected]博客:http://blog.csdn.net/allenwellsGithub:https://github.com/AllenWells


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:09pm
栏目列表