论坛风格切换切换到宽版
  • 1705阅读
  • 2回复

[问题求助][Debian] Arm linux 内核移植及系统初始化过程分析 [复制链接]

上一主题 下一主题
离线wtwone.
 
发帖
1879
C币
-61192
威望
343
贡献值
1
银元
-4
铜钱
4274
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
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()函数中,开始.内核的基本初始化过程。投资

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线ygmgc.
发帖
2047
C币
-235976
威望
369
贡献值
1
银元
-4
铜钱
4604
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-14
Re:[Debian]
LZ发到嵌入式板块更好

离线resoo.
发帖
2070
C币
-60419
威望
390
贡献值
1
银元
0
铜钱
4606
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-14
Re:[Debian]
设计到真正移植的部分很少。
最好能重点介绍一下应该关注哪些地址?
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个