ARM开发教程之ARM Linux系统移植步骤

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之LINUX简介 LINUX简介 LINUX
在众多嵌入式操作系统中,Linux目前发展最快、应用最为 广泛[1]。性能优良、源码开放的Linux具有体积小、内核可 裁减、网络功能完善、可移 植性强等诸多优点,非常适合 作为嵌入式操作系统。一个最基本的Linux操作系统应该包 括:引导程序、内核与根文件系统三部分。 与Linux2.4内核相比,2.6内核吸收了最新的技术,在 性能、可测量性、器件支持和可用性方面有了大幅度提高; 支持更多的体系结构、处理器、总线、接口和设备;标准 化了内部接口;简化了扩展或添加新设备的步骤等。 本文着重介绍如何制作一个基于linux-2.6.19内核的小 型Linux操作系统,并将它移植到S3C2410开放板上。内容 包括交叉编译环境的建立,引导程序、2.6.19内核、根文 件系统的修改、配置、编译、移植等。
ARM开发教程之修改内核 修改内核
首先,修改内核源码linux-2.6.19下的Makefile文件,指定目标代码 类型与编译器:SUBARCH :=arm; CROSS_COMPILE:=/usr/local/arm/3.4.1/bin/arm-linux-。 然后,在linux-2.6.19/arch/arm/mach-s3c2410/commonsmdk.c中根据表1修改内核中的Flash分区 信息。这里提醒读者, 2.6.16(含)以前内核的源码中没有Flash分区信息,所以需要增加新 的分区信息;而在2.6.17(含)以后内核的源码中已 含Flash分区信息, 需要的只是修改分区信息。 内核Flash分区信息必须与vivi的Flash分区信息相一致。因为,vivi 的Flash分区中的地址是内核及文件系统下载到Nand flash的真正地 址;而内核在启动时读的却是内核Flash分区设定的地址;所以, 若两者不同,则很可能导致不能正常启动内核或读取文件系统。 最后,修改linux-2.6.19/drivers/mtd/nand/s3c2410.c,禁止 Nand flash差错检测:chip->eccmode = NAND_ECC_NONE;。
www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之根文件系统 根文件系统
Linux系统中的文件和设备是通过文件系统来组织的。 文件系统的存在使得数据和设备可以被有效而透明地 存取访问。一个linux的最简根文件系统应该包括支持 linux系统正常运行的基本内容,包括系统使用的软件 和库,以及所有用来为用户提供基本支持的架构和指 令。 在根文件目录rootfs下建立bin、dev、etc、lib、 proc、sbin、root、tmp等一系列必备的目录,把所需 的配置文件、动态 函数库放到相应的目录。采用 BusyBox是缩小根文件系统的好办法。BusyBox以很小 的体积集成了最常用的linux命令和应用程序,大大简 化了制 作linux根文件系统的过程。
www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
有一点必须指出的是,在2.6.12(含)之前的内核通常是用devfs来管理位于 /dev下的所有块设备和字符设备;但在2.6.13(含)之后的 内核已不支持 devfs,而转用udev来管理/dev下的设备,详见[5]。所以,针对2.6.19内 核,要使系统启动后进入BusyBox控制台,还 需在/root fs/dev下添加控制台设备文件:“[root@localhost dev]# mknod -m 600 console c 5 1”。 目前,linux已经能够支持几十种文件系统格式,如常用的Cramfs、 Jfss2、Yaffs等。Cramfs 是一种只读的闪存文件系统,可以保护系统的基 本设置不被更改。根文件系统就使用Cramfs格式。 使用Cramfs制作工具mkcramfs把根文件目录制作成映像文件: rootfs.cramfs。 根文件系统制作完成,在vivi命令模式下把rootfs.cramfs下载到Flash 的合适位置。 至此,一个基于2.6.19内核的小型Linux系统便成功地制作完毕,并移 植到S3C2410开发板上了。 板子加电后便可看到系统的启动信息,最终进入BusyBox控制台。
www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之系统的制作移植 系统的制作移植 建立交叉编译环境 要移植、开发小型Linux系统,首先要在安装 了RedHat9或更高版本Linux操作系统的主机上 配置交叉开发环境。交叉开发是指在开发主机 上安装开发工具,编辑、编译目标板的引导程 序、内核和文件系统,使其能在目标板上运行。 针对本次开发,需要安装arm-linux-gcc3.4.1以及armv4l-tools工具链。在安装完毕后, 切记要将两者的路径分别添加到系统路径 $PATH中。
www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之ARM简介
Arm9S3C2410微处理器与Linux的结合越来越紧密,逐 渐在嵌入式领域得到广范的应用。目前,在便携式消 费类电子产品、无线设备、汽车、网络、存储产品等 都可以看到S3C2410与Linux相结合的身影。 S3C2410微处理器是一款由Samsung公司为手持 终端设计的低价格、低功耗、高性能,基于arm920T 核的微处理器。它带有内存管理单元 (MMU),采用 0.18mm工艺和AMBA新型总线结构,主频可达203MHz。 同时,它支持Thumb 16位压缩指令集,从而能以较小 的存储空间获得32位的系统性能。
www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之引导程序 引导程序
对于计算机系统来说,从开机上电到操作系统启动需要一个引导程 序。嵌入式linux系统同样离不开引导程序,这个引导程序叫做 Bootloader[1]。通过这段小程序,可以初始化硬件设备、建立内存 空间的映射表,从而建立适当的系统硬件环境,为最终调用操作系 统内核做好准 备。 vivi[4]是韩国MIZI公司为其arm9系列产品而研发的Bootloader, 小而灵巧,这里选用它作为小型Linux系统的Bootloader。 首先要修改vivi源代码中的Flash分区信息,新的分区信息如表1 所示。 根据表1,在vivi源码arch/s3c2410/smdk.c文件中作出相应的 修改。 然后在配置菜单中导入smdk2410的默认配置,编译成功将在 vivi源代码目录下生成所需的Bootloader文件,文件名为vivi。 接着,便可把vivi下载到目标板Flash的相应位置。
www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之


www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中wenku.baidu.com 千锋3G嵌入式移动互联网技术研发中心 3G
www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之内核的配置编译 内核的配置编译
在配置菜单中导入内核对smdk2410的默认配置, 再在此基础上选择所需的功能。如Nand Flash及 MTD设备的支持,Cramfs文件系统的支持等。 配置完毕,在终端输入编译命令“make”进行 编译。若内核源码编译成功,将在linux2.6.19/arch/arm/boot/下生成内核映像文件 zImage。 最后,在vivi命令提示模式下使用下载命令, 将内核映像zImage加载到开发板Flash中的适当地 址。
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之ARM LINUX系统移植步骤 ARM开发教程之ARM LINUX系统移植步骤 开发教程之
ARM简介 Linux简介 系统的制作移植建立交叉编译环境 引导程序 内核 修改内核 内核的配置编译 根文件系统 结束语
www.embedtrain.org www.mobiletrain.org
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
结束语
基于2.6内核的Linux凭借其突出的嵌入式特性 与性能优越的arm9 S3C2410相结合,在嵌入 式领域有着广阔的应用天地。文章介绍了如何 制作一个基于Linux2.6.19内核的小型Linux系 统,并将其移植到 S3C2410开发板上。小型 系统的制作与移植是进行嵌入式开发的基础, 必须熟练掌握。
www.embedtrain.org www.mobiletrain.org
相关文档
最新文档