·53·
文章编号:1007-757X(2009)8-0053-03
基于S3C2410处理器的Linux 移植
邓俊华  杜玉晓
摘  要:描述了将linux 二移植到基于S3C2410处理器的目标板上的方法与过程。首先介绍嵌入式Linux 移植方法,并说明如何搭建移植环境,着重介绍Bootloader 的架构和功能以及Linux 内核的移植。结果证明该方法是可行的,移植后Linux 在嵌入式系统中运行良好。
关键词:嵌入式系统;S3C240处理器;Linux ;Bootloader ;移植 中图法分类号:TP316.89          文章标志码:A
0  引言
c语言程序设计书免费阅读嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
ARM 嵌入式芯片是一种高性能、低功耗的RISC 芯片,世界上几乎所有的主要半导体生产商都生产基于ARM 体系结构的通用芯片,且基于ARM 内核的嵌入式处理器已经成为市场主流。而Linux 是免费发行的、快速高效的操作系统,在过去的几年中,基于开源组织的Linux 嵌入式操作系统得到了长足的发
展。嵌入式Linux 是按照嵌入式操作系统的要求设计的一种小型操作系统。由一个内核以及一些根据需要进行定制的系统模块组成。其内核很小,一般只有几百kb ,即使加上其他必要的模块和应用程序,所需的存储空间也很小。非常适合于移植到嵌入式系统中去,同时它还具有多任务多进程的系统特征。
本文所使用的嵌入式系统目标平台是SamSung 公司基于ARM920T 内核的嵌入式处理器S3C2410,主要面向手持式设备以及高性价比,低功耗的应用,内部集成LCD ,USB 等控制器。Linux 内核采用2.6版本的内核,它吸收了一些新技术,在性能,可靠性和可扩展性方面有较大提高。
1  嵌入式Linux 移植方法
嵌入式Linux 系统包括Bodoader(引导程序),内核启动参数,内核(kemel)和根文件系统四个部分,在Flash 中存储的示意图如图1所示。
rank函数从小到大排名
图1 Flash 中存储的示意图
将嵌入式Linux 移植到特定的硬件平台上,一般需要以下五个步骤:
(1)准备工作。包括从相关网站下载嵌入式Linux 的源
码包,搭建交叉编译开发环境,配置主机的开发环境等工作。
(2)配置编译u 一boot ,并将其烧写到目标平台的Flash 上。
(3)配置和编译Linux kernel 。必要时还要对源码进行一定的修改,并将其移植到目标平台上。
(4) 制作RAMdiks 来挂接Linux 的根文件系统,并在RAMdisk 中添加自己的应用程序。
(5) 部署Linux 系统使目标板脱离交叉开发环境,直接在目标机上本地启动运行。
本文将以SamSugn 公司的处理器S3C2410为例,从上述五个方面详细地分析和说明嵌入式Linux 系统在S3C2410上的移植过程。
2  交叉开发环境的建立
2.1 交叉开发模型
由于嵌入式系统硬件上的特殊性,一般不能安装发行版的Linux 系统,所以需要专门为特定的目标板定制Linux 操作系统,这必然需要建立交叉开发环境,其模型如图2所示。图中TARGET 是目标板,Host 是开发主机。在开发主机上安装桌面的Linux 操作系统(如Redhat9等),Linux 引导程序、内核和根文件系统,经过交叉编译后下载到目标板上运行。目标板和主机之间通常可以使用串口,以太网接口,USB 接口以及JTAG 接口等连接方式。
图2 交叉开发模型
2.2 交叉编译工具的安装
现在在网上很容易就可以下载到已经做好的工具链,GNU 免费提供的工具链包括三个部分:binu-tils ,gcc 和glibc ,其中binutils 是二进制处理工具,gcc 是编译工具,glibc 是链接和运行库。交叉编译工具的安装步骤如下:
食肉菌感染几率
(1)从A RM linux 的官方站点uk 下载cross 一3.3.2.tar.bz2包。
linux操作系统镜像(2)在/usr/local/arm 下解压。 $ tar-jxvf cross-3.3.3.tar.bz2 $./cross-3.3.2
安装完毕后,查看/usr/local/bin 目录下是否存在cross 等
———————————
作者简介:邓俊华,广东工业大学自动化学院,硕士研究生,广东 广州  51000
杜玉晓,广东工业大学自动化学院,副教授,广东广州 51000
文件,如果存在,基本可以确定交叉编译器安装成功。
(3)添加交叉编译器的路径,在etc/profile文件中修改PATH环境变量。
export PATH=$PATH:/usr/local/arm/3.3.2/bin
2.3 主机开发环境的配置
(1)主机环境配置:首先要确认主机的网络接口驱动成功,并且配置网络接口的IP地址。可以通过ifconfig命令查看所有网络接口,还可以配置网口的IP地址。
(2)串口控制台工具:串口通信接口很适合作为控制台,在各种操作系统上一般都有现成的控制台操作程序可以使用。windows操作系统有超级终端(FlashFXP)工具;Linux操作系统有minicom工具。
(3)TFTP服务:TFTP是目标板下载映像所需要的网络服务。以root身份登录,完成下面的操作:
编辑tftp配置文件
$vi/etc/xinetd.d/tftp
修改disable 一行,把yes改为no;
使用下面的命令使xinetd重新启动TFTP服务
$/etc/init.d/xinetd restart
3  嵌入式Linux的移植过程分析
3.1 u-boot移植
Bootloader是在操作系统内核运行之前的一段程序,通过这段小程序,可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。Bootloader的实现依赖于硬件,特别是在嵌入式系统ARM处理器芯片商很多,每种芯片都有自己Bootloader,而Bootloader也依赖于具体的嵌入式板极设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种ARM
芯片而构建的,要想让运行在一块板子上的Bootloader 程序也能运行在另一块板子上,通常也都需要修改Bootloader的源程序。u一boot是遵循GPL 条款的开放源码项目,并且已经成为ARM平台事实上的标准Bootloader。
3.1.1 Bootloader启动流程
Bootloader启动分为两个阶段。
(I)Bootloader的staegl主要完成以下工作:
基本的硬件初始化。屏蔽所有的中断,设置CPU 的速度和时钟频率,RAM初始化,初始化,LED, 关闭CPU 内部指令/数据cache。
为加载Bootloader的stage2准备RAM空间。通常为了获得更快的速度,将第二阶段加载到ARM空间来执行。
拷贝Bootloader的stage2到ARM空间中,要注意stage2的可执行映像在固态存储设备的存放起始地址和终止地址。
设置堆栈指针SP,堆栈指针的设置是为了执行C语言代码作好准备。
跳转到stage2的C入口点。在上述一切都就绪后,就可以跳转到Bootloader的staeg2去执行了。
(2)Bootloader的stage2主要完成以下工作:
用汇编语言跳转到main入口函数。
初始化本阶段要使用的硬件设备,包括初始化串口,计时器等。
检测系统的内存映射,所谓内存映射就是指在整个4GB 物理地址空间中有哪些地址范围被分配用来寻址系统的RAM单元。
加载内核映像和根文件系统映像,这里包括规划内存布局和从Flash上拷贝数据。
设置内核的启动参数。
调用内核。
3.1.2 u一boot 移植主要步骤
移植之前,需要先分析一下u-boot已经支持的开发板,比较出硬件最接近的开发板。选择的原则是:首先处理器核相同,其次处理器结构相同,然后是以太网口等外围接口相同。u一boot移植主要步骤如下。
(1)从www.soureforge/project/u-boot网站下载u-boot源码包:u-boot-1.1.2.tar.bz2。
(2)解压后配置编译开发板S3C2410的u-boot:
$ tar-jxvf u-boot-1.1.2.tar.bz2
$ cd u-boot-1.1.2
(3)在Makefile中修改交叉编译工具链前缀CROSS_COMPILE:
CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux-ge c
(4)配置编译S3C2410板
$make gec2410_config
$make
(5)移植 u-boot-1.1.2支持实验板,修改Makefile
(6)调试u-boot源代码,直到u-boot在开发板上正常启动
(7)烧写u-boot 到Flash。最简单方式就是通过JTAG电缆转接到计算机并口连接,在主机烧写程序及并口设备驱动程序的支持下完成u-boot烧写工作。烧写完成后,复位实验板,串口终端就显示u-boot的启动信息。
3.2 内核的配置和编译
标准Linux 内核相对于资源受到限制的嵌入式系统来说过于庞大,因此要将其移植到嵌入式系统上,就需要将Linux内核根据目标平台的情况进行剪裁、配置,并对配置好的内核进行编译生成内核映像文件
3.2.1 内核的配置
(1)从网站 下载Linux官方发布的内核版本Linux-2.6.,把源代码包解压到工作目录$ tar jxvf Linux-2.6.
(2)检查修改makefile,确认ARCH和CROSS_COMPILE 的定义
ARCH=arm
CROSS_COMPILER=arm-linux-
(3)配置内核:在shell命令下输入命令进行内核配置
$make menuconfig
进入配置栏的的“Load an Alternate Configuration File”
不受限制的万能浏览器输入配置文件名 gec2410.cfg 并回车,在主菜单里选择Exit 退出并保存设置。
Linux内核包允许用户对其各类功能逐项配置,可以参见相关项的help。在配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需求进行选择。选择的原则是将与内核其它部分关系较
远且不经常使用的部分功能代码编译成为可加载模块,这样有利于减小内核的长度,减小内核消耗的内存。不需要的功能就不要选,与内核关系紧密且经常使用的部分功能代码直接编译到内核中。主要是进行以下几项配置:选择处理器类型、选择板级支持、选择对RAMdisk支持、对设备驱动的支持以及对文件系统的支持。
·54·
在配置工作完成后,保存退出,生成文件.config,它保存了这个配置信息,就可以进行内核编译。
3.2.2 内核的编译
通常在Linux中,内核映像分为压缩的内核映像和未压缩的内核映像,压缩的内核映像通常名为zImage,位于arch/arm/boot目录中。而未压缩的内核映像通常名为vmlinux,位于源码树的根目录中。为了适应嵌入式的需要,采用压缩方式编译:$make zImage,完成这个命令后,在arch/arm/boott目录下生成了压缩的内核映像zImage,编译好的内核映像文件先被烧写到Flash内;启动时由引导程序将内核从Flash里加载到系统RAM中解压,然后运行。这种压缩方式编译出来的内核映像文件小,非常适合嵌入式系统使用。
3.3 制作RAMdisk
由于ARM Linux采用RAMldiks的方式加载根文件系统,所以还要制作根文件系统。根文件系统主要有下面几个目录组成:/bin目录下放置init,busybox,shell 和文件管理程序等一类的文件;/dev目录下放置Linux操作系统的所有设备文件;/etc目录下放置系统配置文件;/lib目录下放置所有系统运行所必需的库文件。
3.3.1 制作RAMdisk
ARMdisk 就是用内存空间来模拟出硬盘分区也就是块设备),基于RAMdisk的块设备,可以建立EXT2格式的磁盘文件系统。RAMdisk通常使用磁盘文件系统的压缩映像存放在Flash中,在系统初始化时,解压到内存指定位置,然后就可把RAMdisk设备挂载成根文件系统。显然,RAMdisk 的特点之一就是速度快.因为它是在RAM中运行。
Cramfs 根文件系统的制作
将程序和模块添加到根文件系统中,以gec2410中的amfs根文件系统
的添加为例。
(1)将amfs拷贝到任意目录下
cp amfs /home
(2)在该目录下建立两个文件:
mkdir chang
mkdir guo
(3)将amfs挂接到chang目录下
mount –t cramfs –o loop amfs chang
(4)将chang目录下的内容压缩
哈夫曼树左边是0还是右边是0cd chang
tar–cvf chang.tar*
这样将产生一个chang.tar包.
然后将隐藏的文件要拷贝过来:ls–a显示所有的文件,cp.bashrc../guo/
将.bashrc文件拷贝到guo目录下。
(5)将包解压到guo目录下
umount chang;卸载挂接
cd..;进入上一级目录
ar.guo
cd guo
tar-xvf chang.tar;将打包的根文件系统里的内容解压
rm chang.tar
(6)将自己的驱动gpiodrv.ko和应用程序gpio_test拷贝到相应的目录下。
将gpiodrv.ko 拷贝到guo/usr/目录下
(7)经过上面的步骤就可以将自己的驱动和应用程序添加到cramfs 根文件系统中了
现在将开始制作cramfs 根文件系统
先将mkcramfs 文件拷贝到guo 所在的目录
在这个目录下运行命令:
mkcramfs guo amfs
运行成功后,会在该目录下生成amfs 根文件系统
(8)根文件系统制做成功后,就可以将它烧写到相应的地方。
3.3.2 部署Linux系统
重新启动开发板,进入u-boot的提示符下;
然后使用u-boot 的命令来烧写,步骤如下;
(1)烧写内核映象zImage
#tftp 0x30008000 zImage //通过tftp下载内核映象
#nand erase 0x40000 0x1c0000 //擦除内核分区
#nand write 0x30008000 0x40000 0x1c0000//把下载的内核映象文件烧写到内核分区
(2)烧写根文件系统
将光碟的“目标代码”目录下的amfs 文件拷贝到linux 的/tftpboot 目录下;
#tftp 0x30008000 amfs
#nand erase 0x200000 0x1e00000
#nand write 0x30008000 0x200000 0x1e00000
(3)在u-boot下设置启动参数;
#setenv bootcmd nand read 0x30008000 0x40000 0x1c0000 \;go 0x30008000
#saveenv
(4)重新启动开发板,启动linux系统,使目标板的Linux 系统脱离交叉开发环境,直接在目标机上本地启动运行。
4  总结
本文讨论了Linux向目标系统s3c2410移植的过程中的关键技术及其实现。移植后的Linux保留了原有的工作稳定的特点。并且可以根据需要,在该系统中编写应用程序和运行应用程序。
参考文献
[1] 黄志洪,钟耿扬,佘伟坤.Linux操作系统[M].北京:冶金工
业出版社,2003.
[2] 杜春雷.ARM体系结构与编程[M].北京:清华大学出版
社,2003.
[3] 廖日坤编著.ARM嵌入式应用开发技术白金手册[M].北
京:中国电力出版社,2005.
[4] Karim Yaghmour,构建嵌人式L访以系统[M].韩存兵等译.
北京:中国电力出版社,2004.
[5] 孙琼.嵌人式U加万应用程序开发详解[M].北京:人民邮
电出版社.2006:135-156.
(收稿日期:2008-10-23)
·55·
LI Feng1, GUO Geng-qi1, Xu Ai-Jun2(1.Guangdong Communication Polytechnic, Guangzhou 510650, China;2.Guangzhou Institute Of Railway Technology, Guangzhou 510430, China)
Abstract: The first step to information security is the verify identity system. But the traditional verification has already out of date; the newly arisen bionic verification is blossoming. The bionic network is a security mechanism which bases on human’s physiology characteristic, it is the first defence line to guarantee network’s security .This article lay emphases on discussing the process of coding human’s physiology characteristic, and put forward the author’s view and opinion.
Keywords: Bionic network; Identity validation; Minutiae; Gray; Binarization
Detection of Buffer-OverFlow Based on GECISM (47)
CUI Jing1, LI Ning2, LI Fang 3(1. Computer Department of Ordnance Engineering College, Shijiazhu
ang 050003, China;2. Education Office of Ordnance Engineering College, Shijiazhuang 050003, China)
Abstract: Buffer-Overflow attacks has been the common and basic attack technology,and nowadays it is also the main direction of attack technology.The common method of buffer-overflow is to change the order of program execution in order to execute the code which is written by intruder.By this way,intruder can get the root access,and it willtake great threat to the system. The article constructs the DAE(Detecting and Eliminating)on the GECISM.The agent can detect intrusion with the rule which is formed by the RC4.5 Algorithm.
Keywords:Buffer-Overflow; System-Call; DAE agent; Detection; GECISM
Design and Simulation of Fuzzy Controller of Central Air-Conditioning Based on MATLAB (50)
ZHANG Li, ZHANG Chao-xuan, DING Bao-cang( School of Electrical engineering & Automation, Hebei University of Technology, Tianjin 300130,China)
Abstract: With the rapid development of control theory and system , the control of effect  has  been required more and more high, and control algorithms has been also more and more complex, control
system design has become even more difficult. MATLAB is the most popular computer-aided control system design language and software tools. This article at the basis of MATLAB7.0 through the S function, achieve the optimization and simulation of fuzzy controller of central air-conditioning .
Keywords: MATLAB; Fuzzy control; S-Function; Central air-conditioning
Linux Transplantation Based on Processor of S3C2410 (53)
DENG Jun-Hua, DU Yu-Xiao(School of Automation, Guangdong University of technogy,Guangzhou 510006, China)
Abstract: This paper introduces the method and procedure of making Linux transplanted onto the target board based on the processor of S3C2410.First it says the transplanted method of embedded Linux,then it describes how to build up an environment for transplant,focusing on the framework and functionality of Bootloader and transplant of Linux kernel.This method proves high effective,the transplanted Linux in the embedded sysstem runs well. KeyWords: Embedded system; S3C2410 processor; Linux; Bootloader; Transplant
Learners’s Carden
Discussion of Domain Oriented Web Application Development Based on Grails (56)
ZHANG Hao, WANG Guang-xin(Information Technology Center, Jiujiang University, Jiujiang 332005, China)
Abstract: Domain oriented in enterprise web application development is discussed, and analysis and design of business tier are focused on. Domain Concept, objects in domain tier and their life cycle is introduced. Four design model that Fowler proposed are compared. After that, Thinking, Concept and Structure of the ROR-like Grails application framework is introduced. In the end, by introducing implement of one case, Procedure of domain oriented development using Grails is showed detaily, which offers reference to the design and development of Web application system with Grails. Keywords: Grails; Java; Spring hibernate
Implementation and Simple Application of Embedded Linux File System (59)
LIANG Lian-guan, ZHANG Hui-feng, XIE Qing-yan, WANG Jun-hui(College of Automation Science and Engineering, South China University of Technology, GuangZhou 510640, China)
Abstract: Root file system plays a key role in the embedded Linux system. This paper describes the i
mplementation and application of root file system based on gec2410 development platform, and successfully designes a cramfs root file system which can automatically execute Qt application program. Finally, the operation situation of the file system designed is verified.
Keywords: root file system;cramfs;Busybox;Qt application program
Data Mining Technology Used in Course Selection System (61)
JIANG Yong-liang, FU Chuan-yi(Department of Information Technology, Qiongtai Normal College, Haikou 571100, China )
Abstract: Data mining is a process from which potential and useful information that hidden in mass data can be developed .If we can apply the association rules into the class selection system and mine the hidden and useful knowledge from the credit database,the correlations among different classes can be found. The correlations will give an effective help to teaching staffs to guide students to select their courses.
Keywords : Data mining; Apriori algorithm; Course selection system; Frequent item sets
Embedded Software Testing Platform Based on SOA (63)
LIU Xue1,YANG Ming2,MENG Wei3(1.Xi’an 863 software Incubator Co., Ltd., Xi'an 710075, China;2. School of Economy and Management of Xidian University, Xi'an 710071, China;3.Xi'an Software Engineering Research Center, Xi'an 710075, China) Abstract: The embedded software performance more complex, the quality of software for the ultimate embedded product quality played a decisive role. Embedded software testing ensures the quality of an embedded product. Embedded software testing platform to raise test efficiency and reduce the cost of testing. Firstly in this paper the concepts, and developing mode of Service-Oriented Architecture (SOA) are presented, then a new method to realize embedded software testing platform by realizing The Distributed Simulation Testing Environment (DSTE) is brought forward, so it can save memory resource of embedded system and be suitable to the cross test process of the embedded software.
Keywords: Service-oriented architecture; Distributed simulation testing environment; Embedded software testing platform
Address:1954 Huashan R d.,Shanghai,P.R. China
Zip Code:200030
Tel:86-21-62933230          Fax:86-21-62933230
Email:smcaa@online.sh      URL:http//wxdy.chinajournal
IP:202.96.210.198            Publisher:Shanghai Microcomputer Application Association
Code Number:M 6329          Distributor:International Book Trading Corporation(P.0.Box 399,Beijing)
IV

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。