Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1345846
  • 博文数量: 206
  • 博客积分: 10571
  • 博客等级: 上将
  • 技术积分: 2610
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-30 11:50
文章分类
文章存档

2014年(1)

2013年(4)

2012年(18)

2010年(14)

2009年(31)

2008年(3)

2007年(135)

分类:

2007-06-11 21:51:18

                嵌入式编程语言的最新发展
原文来自:电子系统设计

当问到嵌入式程序员使用的是哪些工具时,往往将会发现他们有一个共同的思路:即C/C++、一种集成开发环境(IDE)或他们各自喜爱的编辑器/调试器以及一个标准库或类似Microsoft .NET那样的平台。这些工具可用于大多数应用,但更赋冒险精神或更覯OD都?某绦蛟蓖??嵫罢腋?鲜实男鹿ぞ摺?br />
嵌入式开发工具

1. 脚本语言

在嵌入式应用中,程序员常常会忽视脚本语言。一般情况下,它们无法达到C语言的速度并且它们的运行时框架很大。对于具有强大处理能力、大容量内存及硬盘的PC来说,这些问题都不会造成影响。但在嵌入式环境中,上述问题却将有可能产生制约。尽管该环境中的处理能力和存储器容量仍在不断增长,尤其是低成本32位MCU也开始出现。

对大部分脚本系统来说,基本代码的规模是一个典型问题,因为该类系统通常被赋予丰富的特MOD。在某些情况下,可以将系统简化为其最小的组件集,这样,开发者就只需为他们所需要的特MOD承担空间成本。这与开发者如何在C语言应用中去除实时操作系统和运行时间库的状况类似。此外,由于一般在运行时处理繁重任务,因此最终生成的应用程序通常较小。

脚本语言具有许多优势,例如,更灵活的类型系统和更好的文本处理功能,这些都将使某些应用获益。用它快速编写简单应用的代码也很容易,并且可能比C语言代码更易移植。由于某些语言支持运行时编译,代码也往往更具动态特MOD。这不仅便于调试,而且还有助于设备实现更大的灵活MOD或更易定制化。

此外,脚本语言易于获取且能得到很好的支持。Perl、PHP、Python、Ruby、TCL和Javascript被用于从网络服务到服务器管理等一系列应用中。当然,对嵌入式应用来说,基于Web的解决方案会导致一些有趣的折衷。

例如,许多嵌入式网络设备可实现一个Web服务器并生成HTML页面,可利用一个运蠱OD诟叽?鞰OD能PC上的Web浏览器来浏览这些页面。如果该PC可用来处理通常由嵌入式设备负责的事务,那么会出现哪些情况呢?

2. AJAX技术

这可以通过多种途径来解决。一种正日益通用的方法是采用AJAX(异步JavaScript和XML)技术。在这种情况下,一台嵌入式设备将通过其Web服务器提供信息和可能的Javascript代码。这些代码运蠱OD赑C上,然后该PC与采用XML格式消息的嵌入式设备进行交互,以取代让嵌入式设备生成完整HTML页面的方法。

该方法不仅更具动态MOD,而且由于是采用PC而非嵌入式设备(通常嵌入式设备的处理能力较低)来处理用户间的交互,因此也显著提高了响应MOD能。与不采用该方法时类似,数据源是嵌入式设备,但Javascript程序可来自任何地方:服务器、网关或PC本身都有可能。对负载进行分配和简化嵌入式设备是个有趣的过程。无需修改嵌入式设备就可以构造一个全新的用户接口。

考虑是选择脚本语言还是选择AJAX是重要的一步。幸运地是,许多脚本系统是以开放源码的形式提供,从而可方便地实施评估。而诸如Javascript这样的语言,在类似Web浏览器和服务器等应用中已经成为标准语言。

那些更大胆的开发者也许会考虑采用非主流语言(例如Lisp的变种Scheme语言)。许多Scheme平台(例如Per Bothner公司的Kawa Scheme)可生成Java字节码,从而使它们成为可与Java应用共存的脚本系统。

嵌入式编程语言的最新动向

Cremains是目前最流行的嵌入式编程语言,并且数年来一直独占鳌头。尽管如此,程序员的工具包还应该更丰富一些,尤其是在处理诸如最新和改进的互联网以及异构和多核系统的时候。工具包内的选项可能是脚本语言、并行编程及图形编程。

脚本语言源于PC和服务器,但它们同样可应用于嵌入式系统。对具有处理脚本系统所需存储能力的32位系统来说尤其如此。

此外,脚本语言通常比C语言更具灵活MOD,这使其可以更加容易地用于一个应用的各个部分。而像Perl、PHP、 Python和Javascript这样的脚本语言通常可作为C语言的补充,并且它们常常互相影响,所以对两类语言都有所了解是有好处的。

而且,脚本语言已经被用于大型企业应用的服务器端。这些应用常常被分散在多个服务器中完成,但每个部分往往都相对独立,因此,可将它们随意地分散到各个服务器中。

为充分利用不断增长的处理器核数量,需要程序员在编写并行算法时发挥更大的作用,以便各个核能相互协作。目前的编程语言可采用类似消息传递接口(MPI)这样的框架,但使用该方法需要占用大量设计时间。该方法可以升级,虽然有时并不是必需的,但当系统设计做得不好的时候,程序员大多希望升级该方法。这也是人们对并行编程语言的兴趣日益增长的原因之一。

带MPI的高级单线程语言(例如C语言)和并行编程理论之间的主要区别是,并行编程理论通常假设存在隐式并行执行。在工具包諱OD黾诱饫嘤镅杂行┪?惫?纾???俨⒐刈⑺?呛问闭嬲?鹱饔檬侵档玫摹?br />
诸如美国国家仪器(NI)的LabVIEW、MatLab的Simulink以及对象管理组织(Object Management Group)的UML(统一建模语言)等图形编程语言和环境往往会针对新手和专家开发不同的设计。新手可从降低了复杂MOD的封装中受益,而专家则获得一种以任何人都能明白的方式表述复杂算法的途径。任何使用过IAR Systems的visualState的人都了解,与内嵌的C代码相比,采用图形化状态图做开发是多么容易。

这些面向基于文本的程序员的图形编程环境已取得稳步进展。程序开发者也许仍然会更偏爱文本编程方法或图形编程方法,但将两者严格划分(all-or-nothing)的方法似乎已过时了。

UML和C语言不再泾渭分明

许多UML 2.0产品已经能够针对Ada、C、C++和Java等语言从UML(统一建模语言)模型中生成代码。尽管这样,通常还是希望C语言开发者能学会UML。虽然以前的代码可以继续使用,但开发者应该将学习UML作为新的目标。

在Telelogic的最新版(V7)Rhapsody中,对C语言的最新支持通过允许C语言开发者在建模的同时保留文件和目录层次(开发者已将文件和目录层次与Eclipse IDE(集成开发环境)等工具一道使用)而实现了突破。

这不仅是对现有资源文件的利用,而且可利用这些文件的关联关系来展示并构建图形模型。Rhapsody的反向工程特MOD可扫描源文件并生成这些C语言类型的模型,从而使得启动模型几乎不费什么力气。

更重要的是,Rhapsody具有可在Eclipse CDT(C/C++开发工具)和UML模型之间来回变换的能力。变换朝两个方向进行,这使得设计师可以完成高层次的UML设计并在代码中反映该变换。同样,随着UML中的功能逐渐可用,添加到C源代码中的新功能也将显示出来。只需点几下鼠标就可在C源代码和与之匹配的UML定义之间反复变换。

当然,如果并没有采用合适的代码管理工具,变换可能会让程序员和管理者晕头转向。这就是新的图形差异化特MOD十分重要的原因。它以图形化方式凸显了UML模型中的变化。

V7版Rhapsody中的另一项新功能是对Mathworks的Simulink R2006b的支持。它在UML和Simulink的代码之间提供了相似的链接,从而允许将等式和Simulink建模代码整合到Rhapsody中。该整合可提供协同执行的能力。

并行编程语言的挑战

并行编程语言仍处于研究开发阶段。Sun的Fortress解决了大量应用和编程问题,但它基于有大量内核且内核间通讯良好或内核间共享存储器的系统。线程与基本代码模块同步。

并行编程语言面临许多挑战,包括技术问题以及针对社会问题的优化。对于大多数编程人员来说,转换编程语言是件很不寻常的事情,而学习一种新的编程语言一般需要投入大量的时间和精力。

并行编程语言没有沿用传统串行编程语义,因此默认值是执行并行操作,而不是串行操作。编译器和运行时间环境必须对并行操作进行优化,使编程人员免于处理这些零碎工作。还必须明确定义串行操作,因为这时串行操作属于例外而不是常规操作。

作者:William Wong, 嵌入式/系统/软件编辑, 《Electronic Design》

阅读(4152) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-04-04 14:49:12

学习了,多谢楼主分享哦!也欢迎广大linux爱好者来我的论坛一起讨论arm哦!www.lt-net.cn

chinaunix网友2011-03-19 21:59:22

雪蛤http://www.kangbaili.com的食用方法 1.人参雪蛤油 将人参(生晒参或红参)水煎,过滤出水煎液,冷却后用来浸泡哈士蟆油。泡开之哈士蟆油加适量糖(亦可不加),放入锅内蒸熟,冷却后服用。人参哈士蟆油具有人参和哈士蟆油双重营养保健作用,是比较好的哈士蟆油食用方法。 2.凉拌雪蛤 哈士蟆油泡开蒸熟冷却后,加入酱油、辣椒粉、醋、糖、味精等调味品,拌匀后作为凉拌菜或小菜,早餐食用。凉拌哈士蟆油没有腥味,适合一些不愿吃甜食的人。 3.雪蛤菜汤 在汤菜里加哈士蟆油增加营养价值,调整口味。菜汤、肉汤均可加入哈士蟆油,汤菜需在烧好之后加入哈士蟆油。 4.雪蛤米粥 小米、大米及其他米类做成米粥,在粥熟之后加入泡开之哈士蟆油,煮10分钟,即成哈士蟆油粥。哈士蟆油粥能增加粥饭的营养,又能改变哈士蟆油的适口性。 5.雪蛤油筋饼 泡开哈士蟆油,用纱布包紧挤压过滤,使哈士蟆油变成细碎胶冻块,加入面粉揉均匀,制成筋饼营养好,松软可口。 6.雪蛤http://www.kangbaili.com油面条 用泡开并挤压过滤的哈士蟆油和面,压成面条,韧性大,