随着计算机技术、通信技术的飞速发展和3C(计算机、通信、消费电子)的融合,嵌入式系统已经渗透到各个领域。在32位嵌入式微处理器市场上,基于ARM(Advanced RISC Machine)内核的微处理器在市场上处于绝对的领导地位,因此追踪ARM技术的发展趋势显得尤为重要。在嵌入式操作系统的选择上,Linux一直因其内核精简、代码开放、易于移植等特点受到广大嵌入式系统工程师的青睐。另外,嵌入式系统一旦具备网络接入功能,其信息处理能力更加强大,因此有必要为嵌入式系统构建Web服务器。本文主要目的是研究基于ARM的嵌入式Linux开发平台构建,并在此基础上进行网络应用程序的开发。
选用指南
在进行嵌入式系统的开发之前,首先必须要选择恰当的开发平台。对于经验丰富的开发者来说,当然可以自己动手组装硬件,然后挑选合适的嵌入式Linux系统,将其移植到开发平台上。但对于初学者来说,可能更好的办法是购买硬件厂商已经做好的开发板,将精力集中在应用程序的开发上。
虽然ARM微处理器有多达十几种的内核结构、几十个芯片生产厂家和众多的功能组合,但这也给广大嵌入式开发人员在确定方案时带来了一定的困难。客观上讲,嵌入式系统一般都是量身打造的。开发人员必须依据客户需求选择合适的软硬件平台,否则的话要么无法完成所要求的功能,要么就会造成资源的浪费,挑选出一个合适的方案确实很不容易。初学者在做决定时不妨借鉴下面的一些经验。
ARM处理器包含ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,SecurCore系列,Inter的Xscale,Inter的StrongARM ARM11系列 其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。
ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM7芯片的系统主时钟为20MHz到133MHz;常见的ARM9芯片的系统主时钟为100MHz到233MHz;ARM10系列微处理器的典型处理速度为1.25MIPS/MHz,其时钟频率则可以高达400MHz。不同ARM芯片对时钟的处理各不相同。有些芯片只有一个主时钟频率,而有些芯片的内部时钟控制器则可以分别为ARM核、USB、UART和DSP等功能部件提供不同频率。
大多数ARM微处理器片内存储器的容量都不大,需要用户在设计嵌入式系统时扩充外部存储器。
除了ARM微处理器核之外,几乎所有的ARM芯片都根据各自不同的应用领域扩展了相应的功能模块,并集成在芯片之中,从而形成了片内外围电路,如USB接口、I/O接口、RTC和LCD控制器等。嵌入式系统的开发人员应该尽可能运用这些外围电路,来实现系统所要求的功能。这样既可以简化系统的设计,同时又能够提高系统的可靠性。
为嵌入式系统挑选合适的硬件平台是一件很复杂的工作。以上给出的只是一些基本的原则,实际应用当中还要根据情况灵活确定。笔者在展开对嵌入式Linux的研究和开发之时,经过比较和鉴别,选用了一款基于S3C4510B处理器的开发板。它是由三星公司推出的一款具有很高性价比的16/32位RISC微控制器,采用的是ARM公司提供的ARM7TDMI RISC处理器核。由于它具有高性能、低功耗等优点,因此特别适合于对价格和功耗比较敏感的应用场合,如手持设备、网络通信和工业控制等。
S3C4510B整个开发板的结构大致如图1所示。
图1 基于S3C4510B的开发板框图
快速入门
下面就来一睹嵌入式Linux的芳容。如果用户的开发板是由专门的硬件厂商提供的,一般来说都会预装一个嵌入式操作系统,如Windows CE、Palm OS或Linux等。此处介绍的S3C4510B开发板预装的是嵌入式Linux。我们不妨借用它来感受一下嵌入式Linux的开发方法。如果用户的开发板是自己组装的,或者买来时预装的是其它的嵌入式操作系统,那么就需要自己动手来重新构建系统了。
正如前面介绍过的,在开发嵌入式系统时需要用到两个平台:一个是开发平台(Host),另一个是目标平台(Target)。开发平台通常用普通的PC机充当。它可以通过串行端口、并行端口和以太网等方式与目标平台相连,从而共同构成一个嵌入式系统的基本开发环境。对于嵌入式Linux系统来说,最简单的开发环境只需要用到宿主机、目标板和串行连接线。它们之间的连接如图2所示。
图2 最简单的开发环境