<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
ARM Linux启动全过程归纳
Nathan.Yu
上电启动中断->pc=0x00000000
0. BootLoader阶段:
1) 处理启动中断(Reset):初始化必要硬件设备(如:RAM)
2) 加载Linux内核镜像到RAM
3) 跳转到Linux
1. Linux内核执行阶段:
1) 对压缩镜像:先解压缩(linux/arch/arm/boot/compressed/head.S),解压后执行镜像
2) 执行镜像:解压後/非压缩镜像直接执行(linux/arch/arm/kernel/head-armv.S:ENTRY(stext)-> __entry->__ret->__switch_data->__mmap_switched->)
3) linux/init/main.c:start_kernel()
2. 中断向量表的建立过程:
linux/init/main.c:start_kernel()->
linux/arch/arm/kernel/traps.c::trap_init()->
linux/arch/arm/kernel/entry-armv.S:ENTRY(__trap_init)
参考: