ARM7ARM9双核平台的技术分析
目前嵌入式系统教学平台市场上的主导产品都是基于ARM7或ARM9架构的,一般都认为ARM7属于低端产品、ARM9属于高端产品,也出现了所谓的“ARM7ARM9覆盖高端低端的教学平台”。宣传“两套 CPU 子板都是可以自由插拔,一套实验系统变化为两套, ARM7 的实验系统可以实现基础的 ARM 嵌入式教学,主要包括指令实验,基础接口实验, UCOS-II 操作系统实验和 uCLinux 操作系统实验; ARM9 的实验系统可以实现高端的 ARM 嵌入式教学,主要包括扩展接口实验, Linux 操作系统实验和 WinCE 操作系统实验。”
这种观点有误导用户的嫌疑。因为ARM9和ARM7同属于ARMv41,是属于中低端系列的ARM微处理器。目前市场上真正高端的ARM架构处理器是与ARMV5TE体系兼容的Intel XScale,如PXA255和PXA270。
从嵌入式系统教学平台的发展来看,未来会形成两个发展方向。即一方面向高端的XScale系列发展,主要面向计算机、软件等专业,这一类高端平台具有强大的计算能力和多媒体功能,教学内容侧重于操作系统、驱动程序和软件应用,培养消费电子、手持设备、无线网络、手机游戏等领域的嵌入式软件人才;另一方面就是ARM7/ARM9系列的中低端教学平台,主要面向电子工程、自动化、仪器仪表等专业,这类平台具有丰富的接口和功能,教学内容侧重于微处理器接口设计、驱动开发和系统应用,培养工业自动化、测控、智能仪表等应用领域的嵌入式技术人才。
宣称采用两种CPU子板的方式,实现ARM7ARM9的功能,是完全没有必要的,而且增加了用户的成本的维护的复杂性,其原因如下:
1、从ARM体系结构的教学内容上看,ARM9的指令集完全兼容ARM7,教学上没有任何区别。所以ARM指令实验和基础接口实验不是ARM7的专利,做过ARM系统开发的人都很清楚,用ARM9一样可以完成ARM7的这些教学实验内容;
2、从操作系统的教学内容上看,目前教学中大都采用µCOS-II或Linux。µCOS-II代码简单,易教易学,Linux功能强大,但对学生的基础要求较高。目前市场上大多数ARM7教学平台都支持µCOS-II或uCLinux,ARM9基本上都支持Linux和WinCE。但µCOS-II不是 ARM7的专利,在ARM9上完全可以运行。而uClinux是Linux的一个子集,无论是从开发着者的角度还是从教学的角度去理解,Linux系统可以完全兼容uCLinux的应用。
宣称支持ARM7和ARM9的双内核,主要原因是因为他们的技术能力较弱,无法完成µCOS-II 在ARM9上的移植和扩展工作,所以采用ARM7来弥补µCOS-II的教学内容。试想,如果有一款ARM9平台,能够运行µCOS-II、Linux、WinCE等操作系统,我们为什么还需要ARM7来画蛇添足呢?事实上,这样的平台已经有了,一些技术实力较强的公司已经把µCOS-II移植到了ARM9上,如UP-NETARM2410和UP-NETARM2410S等。
3、从硬件设计的教学内容上看,支持ARM7和ARM9的双内核的平台,造成了硬件资源的浪费,难以发挥ARM7和ARM9各自的优势。比如:用s3c44b0和s3c2410处理器作为ARM7和ARM9的内核,s3c2410平台支持USB host和USB client,支持真彩色TFT LCD。而主平台为了兼容s3c44b0,不得不使用256色STN的LCD;如果要想有USB host或者client接口,不得不使用其他芯片外扩。这都会使ARM9处理器的功能受到限制,不能充分发挥ARM9处理器的性能。
4、从产品的成本的服务维护上看,采用支持ARM7和ARM9的双内核的平台,无疑会增加产品的成本,因为教学平台最贵的芯片就是微处理器和存储器,而从教学角度看,这部分增加的成本是没有意义的。如果从科学角度看,这种做法又浪费资源,其性价比无不如一块开发板。此外,采用支持ARM7和ARM9的双内核的平台,降低了系统的可靠性,学生在实验过程中,会经常切换两种内核,其损坏的概率会大大增加,增加后续维护成本。
由此可见,仅仅一个ARM9平台就可以同时满足中低端教学的需求,额外添加ARM7去满足低端教学任务,只能认为是画蛇添足。平白增添了硬件成本,还限制了硬件平台的扩展。
嵌入式系统教学的目的应该是为了让学生学到一种嵌入式平台开发和设计的方法,其变化主要体现在运行不同操作系统上,而不是硬件是否采用ARM7还是ARM9上。教学思想应是“授人以渔”,学生学到的是设计方法,将来不管是ARM7, ARM9,还是XScale,甚至包括MIPS、alpha、68k、powerpc等其它体系结构的微处理器,对于一个优秀的嵌入式系统工程师来说都是一样的。
WinCE Linux uClinux 嵌入式系统 相关文章:
- 如何使WINCE启动时自动运行应用程序(04-11)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- WinCE系统下BootLoader的开发(04-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- WindowsCE.Net下CAN卡的驱动程序设计(04-12)