新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > μClinux在S3C4510B上的移植

μClinux在S3C4510B上的移植

作者:时间:2012-05-11来源:网络收藏

摘要:Linux是一种支持多种体系结构处理器的操作系统,有很强的性。描述了将μ到基于处理器目标板上的方法与过程。首先介绍了处理器和μ,并简单说明了如何搭建环境,然后着重讨论了在该开发板上Bootloader的设计实现以及μ内核的移植方法,最后对在这种基于μClinux的嵌入式系统环境下如何开发应用程序做了简单说明。

本文引用地址:http://www.eepw.com.cn/article/149089.htm

关键词:嵌入式系统;移植;μClinux;;Bootloader

1引言

ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一微处理器的通称,还可以认为是一种技术的名字。

1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入我们生活的各个方面。

采用RISC架构的ARM微处理器一般具有如下特点:体积小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。ARM的产品主要包括ARM7Thumb家族和ARM9Thumb家族、ARM10Thumb家族以及StrongARM家族。

2基于ARM的S3C4510B处理器和μClinux

本文所使用的S3C4510B是Samsung公司使用ARM7处理器内核开发的一块嵌入式微处理器。作为一款高性价比的网络处理器,S3C4510B已广泛应用于各种网络设备中,其中央处理器为ARM7TDMI核。ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为:

T:支持16位压缩指令集Thumb;

D:支持片上Debug;

M:内嵌硬件乘法器(Multiplier);

I:嵌入式ICE,支持片上断点和调试点。

ThumbTM16位压缩指令集能以较小的存储空间需求,获得32位的系统性能。S3C4510B处理器包括8kB可配置的一体化Cache/SRAM,1个I2C串行接口,2个UART,2个32位定时器,18个可编程的通用I/O口,以及1个10M/100M以太网控制器。丰富的片内外围极大地简化了系统的设计。同时这款微处理器对操作系统的支持广泛,包括WindowsCE、Linux、PalmOS等μClinux是针对控制领域的嵌入式Linux操作系统,他从Linux2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。适合不具备内存管理单元(MemoryManagementUnit,简称MMU)的微处理器/微控制器,例如ARM7TDMI,他通常具有很少内存或Flash的嵌入式系统。在GNU通用公共许可证(GUNGPL)的保证下,运行μClinux操作系统的用户可以使用几乎所有的LinuxAPI函数,不会因为没有MMU而受到影响。

3建立μClinux开发环境

嵌入式系统的开发与一般的应用开发最大的差别在于,前者需要建立特殊的硬件环境,而后者一般基于特定的操作系统或分布式平台。后者的平台已经对硬件或网络媒质做了抽象,从而不需要由系统开发者来完成这些工作。而在嵌入式系统开发中,这也由开发者完成。

嵌入式系统开发环境一般分成主机端(HOST)和目标板(TARGET)两个部分。主机端是开发平台,用于运行开发过程中的各种工具;目标板是运行和测试平台,是嵌入式系统的最终驻留环境。在主机端和目标板之间需要通过某种方式进行通信,如使用RS232C串口。这种通信的目的在于发送控制指令和传输数据,同时获得反馈信息。图1是系统移植工作的硬件环境。

主机端的PC使用COM1通过MAX232和S3C4510B的UART1相连接,通过串口完成对目标板的必要控制功能。S3C4510B开发板上配备有一块DM9161以太网卡芯片和主机端建立原始(raw)IP连接,使用链路层地址完成大批量数据的传送。

硬件环境建立之后,就需要创建软件开发环境。软件环境主要是指ARM体系结构的交叉编译环境,在主机端使用RedHatLinux8.0操作系统,并在其上建立gcc的ARM体系结构的交叉开发环境。可以从http://mac.os.nctu.edu.tw处下载工具链:

(1)armelfbinutils2.115.i385.rpm

一些辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld(连接器)等。

(2)armelfgcc2.95.32.i386.rpm

配置目标为arm的GNU的C编译器。使用他在宿主机上开发编译目标上可运行的二进制文件。

(3)genromfs0.5.11.i386.rpm

生成Romfs的工具。Romfs是一种文件系统。这种文件系统相对于一般的ext2文件系统要求更少的空间。

将这3个文件放在宿主机上的任意一个目录下,然后输入下面的命令来安装:

们就建立好了μClinux的软件开发环境。

4Bootloader的设计实现

Bootloader被用于系统从硬件启动到操作系统启动的过渡,是嵌入式系统中必不可少的一段程序。他相当于PC机中的BIOS和OSLoader,用于初始化运行硬件和启动操作系统,因此其实现方式由硬件的特性决定。和BIOS/OSLoader一样,他需要固化在目标板中,每次启动目标板时,首先会运行Bootloader,在他完成CPU和相关硬件的初始化之后,才从事先规定的地址启动操作系统或嵌入式应用的固化程序。

在嵌入式系统开发过程中,Bootloader还担任了与主机端通信的任务,他相当于一个“服务器”,不断监听从主机端传来的控制信息和数据信息,完成相应的操作。

当系统上电后,Bootloader从地址0x0开始执行,将存储器映射重新配置,如表1所示,并会执行Linux的固化内核。

Bootloader可以使用ARM仿真软件SDT2.5通过JTAG下载到目标板上。


上一页 1 2 下一页

关键词: 移植 S3C4510B Clinux

评论


相关推荐

技术专区

关闭