uClinux在EP7312上的移植

时间:2022-09-26 12:36:45

【前言】uClinux在EP7312上的移植由文秘帮小编整理而成,但愿对你的学习工作带来帮助。(College of Science & Technology, XinJiang University, Urumqi 830049, China) Abstract: Ep7312 is a kind of Processor based on the architecture of RM720MTDMI designed by the CIRRUS LOGIC Corporation.This experimentation compiles The kernel of uClinu...

摘要:EP7312是CIRRUS LOGIC公司设计的一款基于ARM720MTDMI的内核处理器。实验以PC机为宿主机,通过在宿主机上对uclinux内核进行编译,然后向目标板ep7312移植。从交叉编译环境的建立、uClinux的下载与运行等方面,系统描述了uClinux在EP7312开发板上的移植过程。

关键词:EP7312;uClinux;移植;内核;bootloader

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)32-1238-02

Transplant of UClinux Based on EP7312

ZHANG Shu-ping

(College of Science & Technology, XinJiang University, Urumqi 830049, China)

Abstract: Ep7312 is a kind of Processor based on the architecture of RM720MTDMI designed by the CIRRUS LOGIC Corporation.This experimentation compiles The kernel of uClinux via a host(general-purpose computer) and transplants it to the target EP7312 board.the building of cross compilation environment ,compilation of krenel,,download and implemention of the uClinux are introduced in this paper,the transplant ofuClinux based on EP7312 is systemically described.

Key words: EP7312; uClinux; transplant; kernel; bootloader

1 引言

随着嵌入式技术的迅速普及,Linux由于其开放的源代码、低成本、高稳定性等特点成为了嵌入式领域里发展最迅速的操作系统。而EP7312是CIRRUS LOGIC公司设计的一款基于ARM720MTDMI的内核处理器,将uClinux移植到EP7312处理器平台对于构建高性能的、通用的嵌入式开发平台具有极大的价值。

2 uClinux 操作系统简介

uclinux即“微控制器领域中的Linux系统”。 uClinux从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它是专门针对没有MMU(内存管理单元)的CPU,并且为嵌入式系统做了许多小型化的工作。它通常用于具有很少内存或Flash的嵌入式操作系统。在GNU通用许可证的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。它具有体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的API函数等优点。uClinux与Linux在兼容性方面表现出色,uClinux除了不能实现fork()外,其余uClinux的API函数与标准Linux完全相同。

3 硬件平台

基于uClinux 操作系统的应用开发环境一般是有目标系统硬件开发板和宿主PC机所构成的。如图1所示目标系统硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成。主机端的PC机使用COM1口与目标板EP7312的串口相连,发送控制指令和传输数据,并且通过RS232串口完成对目标板EP7312控制、传输、下载、调试等,内核启动可以通过以太网控制通讯实现NFS服务。

4 软件环境

软件环境要解决的问题是在工作站(x86处理器,redhat9.0 )的环境中建立起一套软件,这套软件把针对目标开发平台的源代码编译成可以在开发平台上运行的二进制代码。这套软件主要包括三个部分:arm-elf-binutils,arm-elf-gcc,uclibc.其中binutils是二进制文件的处理工;arm-elf-gcc是编译工具;uclibc是链接和运行库。

5 uClinux 操作系统的移植

5.1 建立交叉编译环境

在上下载arm-elf-tools-20030314.sh,在宿主机上安装此工具链,在该文件所在目录下键入:

$su

#chmod 755 arm-elf-tools-20030314.sh

#ls-l arm-elf-tools-20030314.sh

#./arm-elf-tools-20030314.sh

执行程序的安装后。可执行文件按会被默认安装在/usr/local/bin目录下。

5.2 交叉编译uClinux的内核

uClinux是一款支持无MMU单元的嵌入式操作系统,从官方网站获取内核文件()。使用tar工具解压内核文件。 $tar xvzf uClinux-dist-20030522.tar.gz

经过一段时间的解压后将在工作目录下会生成uClinux-dist文件夹。 在编译内核之前我们首先要做的是配置内核,常用的配置方式有三种:

make xconfig - X Windows图形界面的配置选项;

make menuconfig - Console图形界面的配置选项;

make config - 命令接口的配置选项; 在这里需要注意的是uClinux是不支持loadable modules的,因此应该取消对该模块的支持。

$cd uClinux-dist/

$ make menuconfig

配置你需要的选项,比如处理器类型,开发板类型,内核版本等。配置好之后选择Saving and Exiting保存退出。

编译uClinux内核的常用选项有:

make distclean该命令将清除以前编译时候产生的文件,包括.config文件,所有目标文件以及内核映象文件。

make clean该命令与make distclean相似,也是清除之前编译时候产生的文件。

make dep 这个只需要在第一次编译的时候执行,为了是建立文件之间的依赖关系,make命令会根据这个依赖关系来确定哪些文件需要重新编译,哪些文件可以跳过。

make lib_only 编译uClibc库

make user_only 编译用户制定的应用程序,比如初始化进程init,bash,以及集成了很多常用工具的嵌入式软件包busybox。

make romfs uClinux经常才用romfs(只读文件系统)来作为系统的根文件系统,所以首先需要将之前编译的很多应用程序以uClinux所需要的目录格式存放起来。比如将可执行文件放在bin目录下,将配置文件放在etc目录下。该命令执行后会在uClinux-dist目录下生成一个romfs的目录,并且将文件系统所需要的文件组织起来,以便之后生成fomfs的映象文件。

上一篇:地震预测模型 下一篇:铁通安徽分公司省干北环传输网的扩容优化