(1)、处理uboot传入的参数:机器ID、启动参数 0、判断是否支持这个CPU 1、判断是否支持这个单板 2、建立页表 3、使能MMU,uboot启动内核时传入的机器ID 4、调到start_kernel,第一个c函数 (2)、链接:根文件系统 (3)、最终目的:应用程序
======================================================================= 内核启动流程: arch/arm/kernel/head.s start_kernel setup_arch // 解析u-boot传入的启动参数 setup_commond_line // retset_init kernel_init prepare_namespace mount_root // 挂载跟文件系统 init_post // 执行应用程序 ====================================================================== 内核启动流程分析: 1、内核打补丁、编译、烧写、试验 2、内核功能、结构,结合Makefile、Kconfig进行分析 1)配置 2)分析Makefile:第一个文件、链接脚本 3、内核启动过程分析 1)比较机器ID 2)解析uboot传入的启动参数 3)挂载根文件系统、执行第一个应用程序 4)分区 ===================================================================== 1、uboot:启动内核 2、内核:启动应用程序 3、构建:根文件系统 ====================================================================== busybox ===================================================================== init进程 1)读取配置文件 2)解析配置文件 3)执行(脚本程序) |
|