【技术分享】linux arm32启动代码分析
话不多说 直接开更[滑稽][心碎]
(其实也没啥说的[狂笑])http://cdn.u1.huluxia.com/g4/M02/03/57/rBAAdl-gDxaALbvgAACcAGvr3IU860.jpg
linux arm32启动代码分析
首先将 linux kernel 代码编译好以后,在目录 arch/arm/kernel 下生成链接脚本文件 vmlinux.lds (vmlinux.lds由vmlinux.lds.S编译而来)。首先分析此脚本来熟悉 linux kernel 二进制代码分布结构。
在 vmlinux.lds.S 中
ENTRY(stext)
1
指明了linux内核入口,入口为stext。符号stext定义在 arch/arm/kernel/head.S 文件中:
.arm
__HEAD
ENTRY(stext)
ARM_BE8(setend be ) @ ensure we are in BE8 mode
THUMB( adr r9, BSYM(1f) ) @ Kernel is always entered in ARM.
THUMB( bx r9 ) @ If this is a Thumb-2 kernel,
THUMB( .thumb ) @ switch to Thumb now.
THUMB(1: )
ENTRY在 include/linux/linkage.h 中定义
#ifndef ENTRY
#define ENTRY(name) \
.globl name ASM_NL \
ALIGN ASM_NL \
name:
#endifhttp://cdn.u1.huluxia.com/g4/M02/03/57/rBAAdl-gDxaAZs-eAAK3lxYhz8Y268.jpg
继续楼层更新[狂笑]
页:
[1]