基于ARM的嵌入式linux内核的裁剪与移植(共2页).doc

上传人:飞****2 文档编号:15128102 上传时间:2022-05-11 格式:DOC 页数:2 大小:16KB
返回 下载 相关 举报
基于ARM的嵌入式linux内核的裁剪与移植(共2页).doc_第1页
第1页 / 共2页
基于ARM的嵌入式linux内核的裁剪与移植(共2页).doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于ARM的嵌入式linux内核的裁剪与移植(共2页).doc》由会员分享,可在线阅读,更多相关《基于ARM的嵌入式linux内核的裁剪与移植(共2页).doc(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上基于ARM的嵌入式linux内核的裁剪与移植0引言微处理器的产生为价格低廉、结构小巧的CPU和外设的连接提供了稳定可靠的硬件架构,这样,限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始,已经陆续出现了一些嵌入式操作系统(比较著名的有Vxwork、pSOS、Neculeus和WindowsCE)。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。而Linux的开放性,使得许多人都认为Linu0引言 微处理器的产生为价格低廉、结构小巧的CPU和外设的连接提供了稳定可靠的硬件架构,

2、这样,限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始,已经陆续出现了一些嵌入式操作系统(比较著名的有Vxwork、pSOS、Neculeus和Windows CE)。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。而Linux的开放性,使得许多人都认为Linux非常适合多数Intemet设备。Linux操作系统可以支持不同的设备和不同的配置。Linux对厂商不偏不倚,而且成本极低,因而很快成为用于各种设备的操作系统。嵌入式linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进

3、入这一领域。1 嵌入式linux操作系统 Linux为嵌入操作系统提供了一个极有吸引力的选择,它是个和Unix相似、以核心为基础、全内存保护、多任务、多进程的操作系统。可以支持广泛的计算机硬件,包括X86、Alpha、Sparc、MIPS、PPC、ARM、NEC、MOTOROLA等现有的大部分芯片。Linux的程序源码全部公开,任何人都可以根据自己的需要裁剪内核,以适应自己的系统。文章以将linux移植到ARM920T内核的s3c2410处理器芯片为例,介绍了嵌入式linux内核的裁剪以及移植过程,文中介绍的基本原理与方法技巧也可用于其它芯片。2 内核移植过程21 建立交叉编译环境 交叉编译的

4、任务主要是在一个平台上生成可以在另一个平台上执行的程序代码。不同的CPU需要有不同的编译器,交叉编译如同翻译一样,它可以把相同的程序代码翻译成不同的CPU对应语言。 交叉编译器完整的安装涉及到多个软件安装,最重要的有binutils、gcc、glibc三个。其中,binutils主要用于生成一些辅助工具;gcc则用来生成交叉编译器,主要生成armlinuxgcc交叉编译工具;glibc主要是提供用户程序所使用的一些基本的函数库。 自行搭建交叉编译环境通常比较复杂,而且很容易出错。本文使用的是开发板自带的交叉编译器,即CROSS一334交叉编译器,该编译只需将光盘中的armlinux一334ba

5、rbz2用tarixvf armlinux一334barbz2命令解压到usrlocalarm下即可。22 修改Makefile 修改内核目录树根下的Makefile时,可先指明交叉编译器。设计时,可向Makefile中添加如下内容: ARCH ?=arm CROSS_COMPILE?=arm-linux-然后设置PATH环境变量,使其可以找到其交叉编译工具链,然后运行vibashrc,再添加如下内容: export PATH=usrlocalarlnlinux一344bin:$PATH23 设置Flash分区 此处一共要修改3个文件,分别如下: (1)在archarmmachs3c2410d

6、evsc文件中添加如下内容: #include<linuxmtdpartitionsh #include #include 然后再建立Nand Flash分区表;同时建立Nand F1ash芯片支持,最后加入Nand Flash芯片并支持到Nand Flash驱动。 另外,还要修改archarmmachs3c2410devsC文件中的s3c_device_nand结构体变量,同时添加对dev成员的赋值。 (2)指定启动时初始化 内核启动时,可以依据对分区的设置进行初始配置,然后修改archam4machs3c2410machsmdk2410e文件下的smdk2410_devices,指明

7、初始化时包括在前面所设置的flash分区信息,并添加如下语句: &s3c_device_nand, (3)禁止Flash ECC校验 内核一般都是通过UBOOT写到Nand Flash的。UBOOT则通过软件ECC算法来产生ECC校验码,这与内核校验的ECC码不一样,内核中的ECC码是由S3C2410中Nand Flash控制器产生的。所以,这里选择禁止内核ECC校验。 修改driversmtdnands3c2410C 下的s3c2410_nand_init_chip ()函数,可在该函数体最后加上如下一条语句: chip-eccmode=NAND_ECC_NONE;3 内核配置过程专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁