《Linux内核移植》PPT课件

《Linux内核移植》PPT课件

ID:38600778

大小:273.32 KB

页数:20页

时间:2019-06-16

《Linux内核移植》PPT课件_第1页
《Linux内核移植》PPT课件_第2页
《Linux内核移植》PPT课件_第3页
《Linux内核移植》PPT课件_第4页
《Linux内核移植》PPT课件_第5页
资源描述:

《《Linux内核移植》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第20章Linux内核移植软件移植的概念简单的说就是让一套软件在指定的硬件平台上正常运行。移植至少包括了两个不同的硬件或者软件平台。对于应用软件来说,移植主要考虑操作系统的差异,重点在修改系统调用。本章的重点是Linux内核移植,需要考虑的硬件平台的差异,涉及较多知识。主要内容如下:Linux内核移植要点内核体系结构框架从现有代码移植内核20.1Linux内核移植要点Linux本身对内存管理(MMU)有很好的支持。因此,在移植的时候首先要考虑到目标硬件平台是否支持MMU。以ARM平台为例,ARM7内核的CPU不支持MMU,

2、无法直接把Linux内核代码移植到ARM7核的硬件平台。μcLinux是专门针对ARM7这类没有MMU的硬件平台设计的,它精简了MMU部分代码。本书的目标平台是S3C2440A,该处理器基于ARM9核,支持MMU,可以直接移植Linux2.6版本的内核代码。1.目标平台2.内存管理单元(MMU)3.内存映射4.存储器20.2平台相关代码结构Linux内核代码目录基本是安装功能块划分的,每个功能块的代码存放在一个目录下。如mm目录存放内存管理单元相关代码;ipc存放了进程间通信相关的代码;kernel存放进程调度相关代码等。

3、arch目录下每个平台的代码都采用了与内核代码相同的目录结构。以arch/arm目录为例,该目录下mm、lib、kernel、boot目录与内核目录下对应目录的功能相同。此外,还有一些以字符串mach开头的目录,对应不同处理器特定的代码。从arch目录结构可以看出,平台相关的代码都存放到arch目录下,并且使用与内核目录相同的结构。使用SourceInsight工具可以看到许多的同名称函数,原因就是内核代码调用的函数是平台相关的,每个平台都有自己的实现方法。对于内核来说,使用相同的名字调用,通过编译选项选择对应平台的代码。

4、20.3建立目标平台工程框架Linux内核2.6版本已经对ARM处理器有很好的支持,并且对三星公司的S3C2440提供一定支持。但是,嵌入式硬件系统的差别很大,移植Linux内核到新的开发板仍然需要修改或者增加针对特定硬件的代码。20.3.1加入编译菜单项修改arch/arm/mach-s3c2410/Kconfig文件,在“endmenu”之前加入下面的内容:87configARCH_MINI244088bool"mini2440"89selectCPU_S3C244090help91SayYhereifyouareus

5、ingthemini2440.20.3.2设置宏与代码文件的对应关系在设置宏与代码文件对应关系之前,首先建立一个空的代码文件。在arch/arm/mach-s3c2410目录下建立mach-mini2440.c文件,用于存放与mini2440开发板相关的代码。建立mach-mini2440.c文件后,修改arch/arm/mach-s3c2410/Makefile文件,在文件最后加入mach-mini2440.c文件的编译信息:43obj-$(CONFIG_ARCH_MINI2440)+=mach-mini2440.o20

6、.3.3测试工程框架工程框架配置修改完毕后,需要进行简单的测试,根据测试结果判断框架是否搭建成功。回到内核代码顶层目录,输入“makeARCH=armCROSS_COMPILE=arm-linux-menuconfig”命令,出现内核设置图形界面。加载默认配置文件后,可以开始配置新增加的菜单。进入“SystemTypes”菜单项,打开“S3C24XXImplementations”菜单,出现一个目标开发板的列表:[]SimtecElectronicsBAST(EB2410ITX)[]IPAQH1940[]AcerN30[]

7、SMDK2410/A9M2410[]SMDK2440[]AESOP2440[]QQ2440/mini2440[]ThorcomVR1000[]HPiPAQrx3715[]NexVisionOTOMBoard[]NexVisionNEXCODER2440LightBoard[]mini244020.4建立目标平台代码框架在20.2.2节编译的内核代码最后出现了链接错误,提示vmlinux.lds文件链接失败。lds文件是GNUld工具使用的一种脚本文件,该文件描述了如何分配链接后的内存区域和地址等信息,通过lds文件报的错误

8、可以顺藤摸瓜分析问题所在。20.4.1ARM处理器相关结构首先打开arch/arm/kernel/vmlinux.lds文件,找到815行,代码如下:815ASSERT((__proc_info_end-__proc_info_begin),"missingCPUsupport")20.4.2建立mac

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。