Arm linu.x 内核移植及系统初始化过程分析 外汇
本文主要介绍.内核移植过程中涉及文件.的分布.及其用途,以及简单介绍系统的初始化过程。整个a.rm linux内核的启动可分为三个.阶段:第一阶段主要是进行cpu和体系结构的检查、cpu本身的初始化以及页表的建立等;第二阶段主要是对系统中的一些基础设施进行初始化;最后则是更高层次的初始化,如根设备和外部设备的初始化。了解系统的初始化过程,有益于更好地移植内核。[成人用品]
1. . 内核移植2. 涉及文件分布.介绍.
2.1. 内核移植2..2.. 涉及的头文件 女人
/linux-2.6.18.8/in.clude.
[r..oot@localhost include]# tree -L 1--- 印刷
.
|-- Kbuild
|-- acpi
|-- asm -> asm-.arm.
|-- asm-alpha
|-- asm-arm -----------------------.-----.--->(1).
|-- asm-sparc
|-- asm-.sparc64 乙肝
|-- config
|-- keys
|-- linux ---------------.---------.------->(2)<性病>
|-- math-emu
|-- media
|-- mtd
|-- net
|-- pcmcia
|-- rdma
|-- rxrpc
|-- scsi
|-- sound
`-- video
内核移.植过程中涉及到的头文件包.括处理器相关的头文件(1)和处理器无关的头文件(2)。( 游戏 )
2..3. 内核移植2.4. . 涉及的源文件 鲜花
/linux-2.6.18.8./arch/arm--- 印刷
[
root@l.ocalhost. arm]# tree -L 1虚拟主机
.
|-- Kconfig
|-- .Kconfig-nommu域名
|-- Kconfig.d.ebug<性病>
|-- Makefile
|-- boot . --------------.----------------->(2)电影
|-- common
|-- configs
|-- ker..nel ------------------------------->(3)--- 印刷
|-- lib
|-- m.ach-at91rm9200电影
……
|-- mach-omap1
|-- mach-omap2
|-- mach-real.view 婚庆
|-- mach-rpc
|-- mach-s3c2410 . --.----------------------------->(4) 女人
|-- mac.h-sa1100 女人
|-- mach-versa.tile 外汇
|-- mm --------------.----------------->.(5)
|-- nwfpe
|-- oprofile
|-- plat-omap
|-- tools ----------------------.--.------->(1) 美容
`-- vfp
(1)
/linux-2.6..18.8./arch/arm/tools<性病>
[root.@loca.lhost tools]# tree -L 1.
.
|-- Makefile
|-- gen.-mach-types学习
`-- mach-types
Mach-types 文件定.义了不同系统平台的系统平台号。移植linux内核到新的平台上需要对新.的平台登记系统平台号。 电子
Mach-t.ypes文件格式如下: 乙肝
# machine_is_xxx CONFIG_xxxx MACH_TYPE._xxx . . number 乙肝
s3c2410 ARCH_S3C2410 . S3C2410 . . 182服务器
s.mdk2410 ARCH_SMDK2410 SMDK2410 .. 193电脑
之所以需要这些信息.,是因为脚本文件linux/arch/arm/tools/gen-mach-types需要linux/arch/tools/mach-types来产生linux/include/asm-arm/m.ach-types.h文件,该文.件中设置了一些宏定义,需要这些宏定义来为目标系统.选择合适的代码。 鲜花
(2)
lin.u.x-2.6.18.8/arch/arm/boot/compressed电脑
[root.@localhost compressed]# tr.ee -L 1(广告)
.
|-- Makefile
|-- Makef.ile.debug--------------彩票
|-- big-.endian.S 汽车
|-- .head-at91rm9200.S电影
|-- head.S
|-- ll_char_wr..S.
|-- misc.c
|-- ofw-shark.c..
|-- piggy.S
`-- vmlinux.lds.i.n--- 印刷
Head.s 是内核映像的入口代.码,是自引导程序。自引导程序包.含一些初始化程序,这些程序都是体系结构相关的。在对系统作完初始化设置工作后,调用misc.c文件中的decomp.ress_kernel()函数解压缩内核映像到指定的位置,然后跳转到k.ernel的入口地址。[成人用品]
Vmlinux.lds.in用.来生成内核映像的内存配.置文件。 电子
(3)
linux-2.6.18.8/arch/arm/ke.r.nel 女人
[
root@localh.ost kerne.l]# tree -L 1
.
|-- Makefile
|-- apm.c
|-- armksyms.c
|-- arthur.c
|--. asm-offsets.c学习
|-- bios32.c
|-- calls.S
|-- dma.c
|-- ecard.c
|-- e.ntry-armv.S电影
|-- .entry-common.S.
|-- entry-header.S..
|-- fiq.c
|.-- head-common.S健康
|-- head.-nommu.S 乙肝
|-- head.S
|-- .init_task.c.
|-- io.c
|-- irq.c
|-- isa.c
|-- module.c
|-- process.c
|-- ptrace.c
|-- ptrace.h
|-.- semaphore.c 美容
|-- setup.c
|-- smp.c
|-- sys_arm.c
|-- time.c
|-- traps.c
`-- vmlinux.lds..S服务器
内核入口处也是由一段汇编语言实现的,由h.ead.s和he.ad-common.s两个文件组成。 女人
Head.s 是内核的入口文件, 在head.s的末尾处 #in.clu.de "head-common.S"。 经过一系列的初始化后,跳转到lin.ux-2.6.18.8/init/main.c中的start_kernel()函数中,开始.内核的基本初始化过程。投资