Armlinux內核移植及系统初始化过程分析.doc

Armlinux內核移植及系统初始化过程分析.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Armlinux內核移植及系统初始化过程分析

Arm linux 内核移植及系统初始化过程分析 Edwin. Rong edwinrong@ 本文主要介绍内核移植过程中涉及文件的分布及其用途,以及简单介绍系统的初始化过程。整个arm linux内核的启动可分为三个阶段:第一阶段主要是进行cpu和体系结构的检查、cpu本身的初始化以及页表的建立等;第二阶段主要是对系统中的一些基础设施进行初始化;最后则是更高层次的初始化,如根设备和外部设备的初始化。了解系统的初始化过程,有益于更好地移植内核。 内核移植涉及文件分布介绍 内核移植涉及的头文件 /linux-/include [root@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)。 内核移植涉及的源文件 /linux-/arch/arm [root@localhost arm]# tree -L 1 . |-- Kconfig |-- Kconfig-nommu |-- Kconfig.debug |-- Makefile |-- boot (2) |-- common |-- configs |-- kernel (3) |-- lib |-- mach-at91rm9200 …… |-- mach-omap1 |-- mach-omap2 |-- mach-realview |-- mach-rpc |-- mach-s3c2410 (4) |-- mach-sa1100 |-- mach-versatile |-- mm (5) |-- nwfpe |-- oprofile |-- plat-omap |-- tools (1) `-- vfp (1) /linux-/arch/arm/tools [root@localhost tools]# tree -L 1 . |-- Makefile |-- gen-mach-types `-- mach-types Mach-types 文件定义了不同系统平台的系统平台号。移植linux内核到新的平台上需要对新的平台登记系统平台号。 Mach-types文件格式如下: # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number s3c2410 ARCH_S3C2410 S3C2410 182 smdk2410 ARCH_SMDK2410 SMDK2410 193 之所以需要这些信息,是因为脚本文件linux/arch/arm/tools/gen-mach-types需要linux/arch/tools/mach-types来产生linux/include/asm-arm/mach-types.h文件,该文件中设置了一些宏定义,需要这些宏定义来为目标系统选择合适的代码。linux-/arch/arm/boot/compressed [root@localhost compressed]# tree -L 1 . |-- Makefile |-- Makefile.debug |-- big-endian.S |-- head-at91rm9200.S |-- head.S |-- ll_char_wr.S |-- misc.c |-- ofw-shark.c |-- piggy.S `-- vmlinux.lds.in Head.s 是内核映像的入口代码,是自引导程序。自引导程序包含一些初始化程序,这些程序都是体系结构相关的。在对系统作完初始化设置工作后,调用misc.c文件中的decompress_kernel()函数解压缩内核映像到指定的位置,然后跳转到kernel的入口地址。 Vmlinux.lds.in用来生成内核映像的内存配置文件。 (3) linux-/arch/arm/kernel [root@localhost kernel]# tree -L 1 . |-- Makefile |-- apm.c |-- armksyms.c |-- art

文档评论(0)

sd47f8cI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档