《Linux内核裁剪步骤》.pdfVIP

  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文档。上传文档
查看更多
0 引言 微处理器的产生为价格低廉、结构小巧的CPU 和外设的连接提供了稳定可靠的硬件架 构,这样,限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始, 已经陆续出现了一些嵌入式操作系统( 比较著名的有Vxwork 、pSOS 、Neculeus 和 Windows CE) 。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却 步;而且,源代码封闭性也大大限制了开发者的积极性。而Linux 的开放性,使得许多人都 认为Linux 非常适合多数Intemet 设备。Linux 操作系统可以支持不同的设备和不同的配置。 Linux 对厂商不偏不倚,而且成本极低,因而很快成为用于各种设备的操作系统。嵌入式Linux 是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。 1 嵌入式Linux 操作系统 Linux 为嵌入操作系统提供了一个极有吸引力的选择,它是个和Unix 相似、以核心为 基础、全内存保护、多任务、多进程的操作系统。可以支持广泛的计算机硬件,包括X86 、 Alpha 、Sparc、MIPS、PPC 、ARM 、NEC 、MOTOROLA 等现有的大部分芯片。Linux 的程 序源码全部公开,任何人都可以根据自己的需要裁剪内核,以适应自己的系统。文章以将 Linux 移植到ARM920T 内核的s3c2410 处理器芯片为例,介绍了嵌入式Linux 内核的裁剪 以及移植过程,文中介绍的基本原理与方法技巧也可用于其它芯片。 2 内核移植过程 2 .1 建立交叉编译环境 交叉编译的任务主要是在一个平台上生成可以在另一个平台上执行的程序代码。不同的 CPU 需要有不同的编译器,交叉编译如同翻译一样,它可以把相同的程序代码翻译成不同 的CPU 对应语言。 交叉编译器完整的安装涉及到多个软件安装,最重要的有binutils 、gcc、glibc 三个。其 中,binutils 主要用于生成一些辅助工具;gcc 则用来生成交叉编译器,主要生成ARM—Linux —gcc 交叉编译工具;glibc 主要是提供用户程序所使用的一些基本的函数库。 自行搭建交叉编译环境通常比较复杂,而且很容易出错。本文使用的是开发板自带的交 叉编译器,即 CROSS 一 3 .3 .4 .交叉编译器,该编译只需将光盘中的ARM—Linux 一 3 .3 .4 .bar .bz2 用tar ixvf ARM—Linux 一3.3 .4 .bar .bz2 命令解压到/usr /local / ARM 下即可。 2 .2 修改Makefile 修改内核目录树根下的Makefile 时,可先指明交叉编译器。设计时,可向Makefile 中 添加如下内容: ARCH ?=ARM CROSS_COMPILE?=ARM-Linux-然后设置 PATH 环境变量,使其可以找到其交叉编译 工具链,然后运行vi~/.bashrc ,再添加如下内容: export PATH= /usr /local /arln—Linux 一3.4 .4 /bin :$PATH 2 .3 设置Flash 分区 此处一共要修改3 个文件,分别如下: (1)在arch /ARM /machs3c2410 /devs .c 文件中添加如下内容: #includeLinux /mtd /partitions .h #includeLinux /mtd /nand .h 1 #includeasm /arch /nand .h 然后再建立Nand Flash 分区表;同时建立Nand F1ash 芯片支持,最后加入Nand Flash 芯片并支持到Nand Flash 驱动。 另外,还要修改arch /ARM /machs3c2410 /devs .C 文件中的s3c_device_nand 结构体 变量,同时添加对dev 成员的赋值。 (2)指定启动时初始化 内核启动时,可以依据对分区的设置进行初始配置,然后修改arch /am4mach—s3c2410 /machsmdk2410 .e 文件下的smdk2410_devices[],指明初始化时包括在前面所设置的flash 分区信息,并添加如下语句: s

文档评论(0)

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

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

1亿VIP精品文档

相关文档