Linux内核移植 (china-unix).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核移植 (china-unix)

第20章 Linux内核移植 软件移植的概念简单的说就是让一套软件在指定的硬件平台上正常运行。移植至少包括了两个不同的硬件或者软件平台。对于应用软件来说,移植主要考虑操作系统的差异,重点在修改系统调用。本章的重点是Linux内核移植,需要考虑的硬件平台的差异,涉及较多知识。主要内容如下: Linux内核移植要点 内核体系结构框架 从现有代码移植内核 20.1 Linux内核移植要点 Linux本身对内存管理(MMU)有很好的支持。因此,在移植的时候首先要考虑到目标硬件平台是否支持MMU。以ARM平台为例,ARM7内核的CPU不支持MMU,无法直接把Linux内核代码移植到ARM7核的硬件平台。μcLinux是专门针对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目录与内核目录下对应目录的功能相同。此外,还有一些以字符串mach开头的目录,对应不同处理器特定的代码。从arch目录结构可以看出,平台相关的代码都存放到arch目录下,并且使用与内核目录相同的结构。使用SourceInsight工具可以看到许多的同名称函数,原因就是内核代码调用的函数是平台相关的,每个平台都有自己的实现方法。对于内核来说,使用相同的名字调用,通过编译选项选择对应平台的代码。 20.3 建立目标平台工程框架 Linux内核2.6版本已经对ARM处理器有很好的支持,并且对三星公司的S3C2440提供一定支持。但是,嵌入式硬件系统的差别很大,移植Linux内核到新的开发板仍然需要修改或者增加针对特定硬件的代码。 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文件,用于存放与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”命令,出现内核设置图形界面。 加载默认配置文件后,可以开始配置新增加的菜单。进入“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 建立目标平台代码框架 在20.2.2节编译的内核代码最后出现了链接错误,提示vmlinux.lds文件链接失败。lds文件是GNU ld工具使用的一种脚本文件,该文件描述了如何分配链接后的内存区域和地址等信息,通过l

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档