Linux内核移植.ppt
《Linux内核移植.ppt》由会员分享,可在线阅读,更多相关《Linux内核移植.ppt(20页珍藏版)》请在三一办公上搜索。
1、第20章 Linux内核移植,软件移植的概念简单的说就是让一套软件在指定的硬件平台上正常运行。移植至少包括了两个不同的硬件或者软件平台。对于应用软件来说,移植主要考虑操作系统的差异,重点在修改系统调用。本章的重点是Linux内核移植,需要考虑的硬件平台的差异,涉及较多知识。主要内容如下:Linux内核移植要点内核体系结构框架从现有代码移植内核,20.1 Linux内核移植要点,Linux本身对内存管理(MMU)有很好的支持。因此,在移植的时候首先要考虑到目标硬件平台是否支持MMU。以ARM平台为例,ARM7内核的CPU不支持MMU,无法直接把Linux内核代码移植到ARM7核的硬件平台。cLi
2、nux是专门针对ARM7这类没有MMU的硬件平台设计的,它精简了MMU部分代码。本书的目标平台是S3C2440A,该处理器基于ARM9核,支持MMU,可以直接移植Linux 2.6版本的内核代码。1目标平台2内存管理单元(MMU)3内存映射4存储器,20.2 平台相关代码结构,Linux内核代码目录基本是安装功能块划分的,每个功能块的代码存放在一个目录下。如mm目录存放内存管理单元相关代码;ipc存放了进程间通信相关的代码;kernel存放进程调度相关代码等。arch目录下每个平台的代码都采用了与内核代码相同的目录结构。以arch/arm目录为例,该目录下mm、lib、kernel、boot目
3、录与内核目录下对应目录的功能相同。此外,还有一些以字符串mach开头的目录,对应不同处理器特定的代码。从arch目录结构可以看出,平台相关的代码都存放到arch目录下,并且使用与内核目录相同的结构。使用SourceInsight工具可以看到许多的同名称函数,原因就是内核代码调用的函数是平台相关的,每个平台都有自己的实现方法。对于内核来说,使用相同的名字调用,通过编译选项选择对应平台的代码。,20.3 建立目标平台工程框架,Linux内核2.6版本已经对ARM处理器有很好的支持,并且对三星公司的S3C2440提供一定支持。但是,嵌入式硬件系统的差别很大,移植Linux内核到新的开发板仍然需要修改
4、或者增加针对特定硬件的代码。,20.3.1 加入编译菜单项,修改arch/arm/mach-s3c2410/Kconfig文件,在“endmenu”之前加入下面的内容:87 config ARCH_MINI2440 88 bool mini2440 89 select CPU_S3C2440 90 help 91 Say Y here if you are using the mini2440.,20.3.2 设置宏与代码文件的对应关系,在设置宏与代码文件对应关系之前,首先建立一个空的代码文件。在arch/arm/mach-s3c2410目录下建立mach-mini2440.c文件,用于存放与
5、mini2440开发板相关的代码。建立mach-mini2440.c文件后,修改arch/arm/mach-s3c2410/Makefile文件,在文件最后加入mach-mini2440.c文件的编译信息:43 obj-$(CONFIG_ARCH_MINI2440)+=mach-mini2440.o,20.3.3 测试工程框架,工程框架配置修改完毕后,需要进行简单的测试,根据测试结果判断框架是否搭建成功。回到内核代码顶层目录,输入“make ARCH=arm CROSS_COMPILE=arm-linux-menuconfig”命令,出现内核设置图形界面。加载默认配置文件后,可以开始配置新增加
6、的菜单。进入“System Types”菜单项,打开“S3C24XX Implementations”菜单,出现一个目标开发板的列表:Simtec Electronics BAST(EB2410ITX)IPAQ H1940 Acer N30 SMDK2410/A9M2410 SMDK2440 AESOP2440 QQ2440/mini2440 Thorcom VR1000 HP iPAQ rx3715 NexVision OTOM Board NexVision NEXCODER 2440 Light Board mini2440,20.4 建立目标平台代码框架,在节编译的内核代码最后出现了链
7、接错误,提示vmlinux.lds文件链接失败。lds文件是GNU ld工具使用的一种脚本文件,该文件描述了如何分配链接后的内存区域和地址等信息,通过lds文件报的错误可以顺藤摸瓜分析问题所在。,20.4.1 ARM处理器相关结构,首先打开arch/arm/kernel/vmlinux.lds文件,找到815行,代码如下:815 ASSERT(_proc_info_end-_proc_info_begin),missing CPU support),20.4.2 建立machine_desc结构,Linux内核提供了MACHINE_START和MACHINE_END宏供建立machine_de
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 内核 移植

链接地址:https://www.31ppt.com/p-5437929.html