嵌入式系统高级编程语言技术分析
扫描二维码
随时随地手机看文章
http://www.liuguo.net 摘要 随着嵌入式技术的普及推广,嵌入式系统高级语言编程势在必行。然而,人们在选择语言系统时往往具有很大的随意性。对价格、获取方便性等因素考虑较多,而对语言本身的技术因素考虑较少。文章从嵌入式系统高级编程语言特点入手,对高级语言的基本性能作简要总结,对目前比较流行的几种嵌入式系统编程语言——ada、c/c++、modula-2的基本技术性能进行分析比较;对java作简要介绍。 关键词 嵌入式系统 高级语言 基本性能 编程特点一、 嵌入式系统高级语言编程特点 随着嵌入式系统应用范围的不断扩大和嵌入式实时操作系统rtos(real time operating system)的广泛使用,高级语言编程已是嵌入式系统设计的必然趋势。因为汇编语言和具体的微处理器的硬件结构密切相关,移植性较差,既不宜在复杂系统中使用,又不便于实现软件重用;而高级语言具有良好的通用性和丰富的软件支持,便于推广,易于维护。因此高级语言编程具有许多优势。(1) 通用性强。随着微处理器技术的不断发展,其功能越来越具体,种类越来越多,而不同种类的微处理器都有自己专用的汇编语言。这就为系统开发者设置了一个巨大的障碍,使得系统编程更加困难,软件重用无法实现;而高级语言一般和具体机器的硬件结构联系较少,比较流行的高级语言对多数微处理器都有良好的支持,通用性较好。(2) 容易编程。随着嵌入式系统应用范围的不断扩大和应用层面的不断深入,系统规模越来越大,结构越来越复杂,设计变得越来越困难。一个系统内有多种微处理器已是常见的事情。这时,要用汇编语言编程不仅要求编程人员要对所有微处理器的汇编语言都了如指掌,而且随着任务复杂程度的不断提高,用汇编语言实现规模较大的任务难度极大;而高级语言的语意层次较高,且有丰富的程序库支持,因此,编写较复杂的程序相对简单。使用高级语言编程,不仅能够加快系统开发进程,节省大量时间,同时也有利于系统调试及维护工作。(3) 容易阅读。由于汇编语言的语意层次较低,在阅读汇编语言程序时,往往要花费大量精力分析“细节”问题,如为什么把一个数据传送给一个寄存器,为什么把某个标志位清零等。当把注意力放在这些“细节”上的时候,往往又把程序的主线忘记了。因此,汇编语言程序不仅难写,而且难读。采用高级语言就可以很好地解决这些问题。因为高级语言的语意层次较高,表达方式更接近人们日常的思维方法,一些数学表达式可以直接用一条语句表达,程序的思路更加清晰、简捷。因此,程序也就容易阅读。(4) 可移植性好。由于汇编语言和具体的微处理器密切相关,为某个微处理器设计的程序不能直接移植到另一个不同种类的微处理器上使用,因此,移植性差;而高级语言对所有微处理器都是通用的,因此,程序可以在不同的微处理器上运行,可移植性较好。这是实现软件重用的基础。(5) 可维护性好。高级语言程序往往是模块化设计,各个模块之间的接口是固定的。因此,当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快得到解决。另外,模块化设计也便于系统功能的扩充和升级。(6) 直接支持中断管理。中断是嵌入式系统最重要也是最常用的信息交换方式,因此中断系统是否灵活,中断功能是否强大对系统的性能影响极大。在高级语言中,一般都有强大的中断管理机制,以便构建高效灵活的中断系统;而在汇编语言中,一般要由程序设计者自己编程来进行中断管理。这不仅增加了编程的难度,而且效果也不一定好。(7) 支持软件重用。由于汇编语言的可移植性极差,使得其软件重用性严重受阻;而高级语言具有较好的通用性和可移植性,这就使得高级语言程序可以在不同时间、不同地点、不同系统、不同人员之间分享,实现软件重用。这不仅可以提高产品质量,缩短开发周期,降低产品成本,而且还可以使软件开发走上正规化、产业化的道路[1]。二、 嵌入式系统高级编程语言概述 在过去40多年,人们开发研制了几十种计算机语言,但是仅有少数几种得到了广泛应用。这就提示我们选择一个合适的语言系统并不容易。在小型嵌入式系统中,通常只有一个微处理器,并且其主要工作往往不是计算,而是控制,应选择控制能力较强的语言。在大型嵌入式系统中,往往会有多个微处理器或计算机并行工作,构成多机系统。它们中有些工作于真正的嵌入式模式,有的则为纯粹的信息处理。此时,对系统的编程就变得相当复杂,不同的任务可能会用不同的语言编程。因此,大型系统往往是一个多语言系统。对于这种“混合”系统的语言选择更应慎重考虑。 目前,在嵌入式系统开发过程中使用的语言种类很多,但仅有少数几种语言得到了比较广泛的应用。本文选择了ada、c/c++、modula-2作为讨论对象,并对java作简要介绍。 ada语