ARM核颠覆传统应用模式 为智造创造条件
嵌入式系统的出现彻底改变了整个电子技术行业,在全球范围内形成了从高校教育和科学研究、电子元件生产厂和电子产品生产厂全方位产业链。因MCU的市场容量大,MCU厂家为了获得更多的市场份额,不断地加大MCU的开发力度,自Intel在1980年发布MCU标志性产品MCS-51开始,到现在的30多年中出现了近100种MCU内核,涉及MCU型号超过3000种。在世界电子元件史上,除了MCU外,还没有一种功能相近,涉及型号如此之多的电子元件,自MCU一出世就进入了战火纷飞的战国时代。但ARM核的出现使MCU领域产生了巨大的变革。
天下一统 ARM核MCU性能价格优势明显
ARM7TDMI模式的出现,使嵌入式系统开发逐渐统一到相同MCU内核和软件开发工具上来,为嵌入式系统走出"不断地学习新内核MCU,不断地放弃老内核MCU"的怪圈创造了条件。
相对于普通电子元件,MCU除了电气特性外,还涉及指令系统,不同内核的MCU具有不同的指令系统。指令系统的不同,意味着MCU软件开发平台和嵌入式软件的不同。
30多年里出现近100种MCU内核,除了说明MCU技术进步快之外,还意味着不仅是MCU厂家在不断"重造车轮"的过程中浪费了大量的人力和财力,更使处于MCU产业链的终端的嵌入式系统苦不堪言。对于嵌入式系统厂家,如果坚守同一内核的MCU,则产品性价比差,特别是MCU到了生命期后还会停产;如果不坚守同一内核的MCU,则需要推翻已成熟的硬件和软件,因硬件是可视的,不同内核MCU的电气特性相差不大,更新比较容易,而软件则很困难。更换了不同内核的MCU,首先是要重新购买软件开发工具,其次软件人员要重新学习指令系统和软件开发工具,最后才是将过去的软件移植到新内核MCU上。其实软件移植也是十分困难的,因为首先遇到的软件开发工具存在BUG(软件开发工具也是软件,开发软件开发工具的软件开发人员对MCU指令系统的理解程度决定软件开发工具的质量,并且他们理解MCU指令系统也需要时间);其次是不同内核的MCU其软件架构和算法差异性大,软件移植过程投入的人力物力和重新开发投入的人力物力能相比拟。因此对于嵌入式系统来说,这30多年里主要精力不是放在让嵌入式系统更好地服务于特定应用,而是放在不断地更换不同内核的MCU,被迫跟随MCU厂家陷入"不断地学习新内核MCU,不断地放弃老内核MCU"的怪圈。
ARM7TDMI模式的出现使MCU产业链的源头发生本质性的变化。ARM7TDMI模式是:ARM向各MCU厂家出售ARM7TDMI内核,MCU厂家根据其市场目标将购买的ARM7TDMI内核与不同外设集成,形成内核相同、外设不同的MCU,保证了内核的一致性;同时ARM协助第三方编译厂家开发软件开发工具,如IAR、Keil,而且ARM也推出了相应的软件开发工具STD和ADS,从而保证了MCU软件开发工具的一致性。通过上述的工作,使嵌入式系统开发逐渐统一到相同MCU内核和相同的软件开发工具上来,保证了MCU的升级换代不受MCU内核的困扰,为嵌入式系统走出"不断地学习新内核MCU、不断地放弃老内核MCU"的怪圈创造了条件。
ARM公司在MCU产业链源头的创新,使基于ARM核的MCU型号迅速增加,以满足不用应用领域的需求。在性能上,基于ARM核的MCU完全超过目前4位、8位、16位和部分32位MCU的性能;在价格上,基于ARM核MCU的价格从5元以下开始,一直延伸到数百元,完全覆盖了同时期的4位、8位和16位MCU的价格范畴。性能和价格的优势使基于ARM核MCU一统天下的局面开始形成。
软件之痛 嵌入式软件开发实力比PC弱
嵌入式系统的软件开发行业的整体实力却比PC行业弱很多,这是因为开发体系缺乏、开发工具缺乏、软件开发要求低、开发人员不适应嵌入式系统之变。
直到2000年,MCU的性能还不能令人满意,业界广泛应用的MCU,其运行速度低于10MIPS,存储器和外设都很少,许多应用需要外扩存储器和外设。当时的嵌入式系统开发过程,首先最重要的工作是扩展存储器和外设,其次是编写MCU与扩展外设之间的驱动程序,最后才是为特定应用服务的软件开发。因MCU速度低,扩展外设的驱动程序占用了不少MCU运行时间,留给特定应用程序运行的资源很少,所以特定应用服务的软件很简单。因此,当时嵌入系统开发是以硬件及其与硬件直接相关的软件开发为主。
基于ARM核MCU的出现,即使不到5元的32位MCU,其运行速度超过40MIPS,而且还集成了丰富的存储器和各种外设,使MCU不扩展外设也能满足大部分需求,从而简化了硬件开发工作。ADS、MDK-ARM和IAR Embedded Workbench for ARM软件开发工具的不断完善,确保了嵌入式软件开发工具的一致性和连续性;CMSIS标准库的推出,使嵌入式软件外设驱动的标准化,增强了嵌入式系统特定应用软件的可移植性。ARM及其MCU厂家的共同努力,通过上述3方面的工作宣告"重造车轮"式的嵌入式开发模式的结束,使嵌入式开发由以硬件及其与硬件直接相关的软件开发为主转移到以开发为特定应用服务的软件上来。
嵌入式系统是为特定系统定制的,这就要求开发人员除了具备软件开发能力,还应具备服务对象、硬件领域、通信与网络领域、人机介面领域的专业知识。除此之外,它还要求具备较高的软件架构和实时任务调度能力。以上表明嵌入式系统对软件开发人员的要求并不比PC对软件开发人员的要求低,但实际上嵌入式系统的软件开发行业的整体实力却比PC行业低很多,这是因为:
1.开发体系缺乏。PC自Intel和微软在硬件和操作系统上统一后,PC软件作为软件产业中最大一个分支,从方法、理论、实施到维护升级等方面入手,建立了完整的软件开发体系、规范了软件产业的全过程,从而保证了整个PC软件行业沿正确的方向发展。而嵌入式系统30多年里,由于不断"重造车轮",没有条件也没有时间建立完整的嵌入式系统软件开发体系。
2.开发工具缺乏。嵌入式系统无论从MCU的运行速度,还是其它资源都比PC少。例如:目前PC的速度是以G为单位,而MCU的速度是以M为单位,它们之间相差了1000倍,PC强大的资源保证了PC软件开发能运用各种软件开发工具。目前在PC软件开发过程中,从需求分析、软件架构、系统建模、代码生成、代码分析、人机介面、网络通信和任务调度都有相应的工具支撑,如Windows系统就是PC上集任务调度、人机界面和网络通信一体的标准化平台和工具。在嵌入式系统中,受其资源的限制,妨碍了嵌入式软件开发工具的产生和发展,开发工具的缺乏使嵌入式系统软件的开发难度更加困难。
3.软件开发要求低。嵌入式系统开发的30多年历程中,主要工作集中在硬件设计及硬件驱动程序上,而真正用于增强用户体验、服务于行业的软件无论是工作量还是代码量都很少,因此对软件体系的建立和工具的需求要求不明显。
4.开发人员不适应嵌入式系统之变。MCU厂家的诸侯割据,导致嵌入式系统开发长期奔波于"重造车轮"的低水平重复;在职业教育的源头上,基本上没有一本专业的嵌入式软件开发的教科书,更谈不上设置专门学科。目前除了消费电子领域,嵌入式系统软件开发人员通常来自电子、电气和机械等专业,他们基本上没有受过系统的软件开发教育,所以绝大多数嵌入式软件开发人员的认识还停止在会不会C语言编程这样低层次上。完全不适应嵌入式软件从过去以实现为主的开发模式转化到以服务和维护为主的开发模式。
ARM 传统应用模式嵌入式软件 MCU 相关文章:
- 分析:2011年商用PC市场发展情况乐观(03-01)
- 富士通半导体与ARM签署全面授权协议(03-07)
- ARM手机芯片市场份额已超90% 英特尔倍感压力(03-17)
- 中国正探寻如何快速进驻HPC芯片领域(03-23)
- 美国国家半导体推出10款全新SolarMagic IC芯片 (05-03)
- IDC:中国一季度平板电脑出货量达86万台(07-20)