- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
2.2.4 代码优化 嵌入式系统对应用软件的质量要求更高,因而在嵌入式开发中尤其须注意对代码进行优化,尽可能地提高代码的效率,减少代码的大小。虽然现代C和C++编译器都提供了一定程度的代码优化,但大部分由编译器执行的优化技术仅涉及执行速度和代码大小的平衡,不可能使程序既快又小,因而必须在编写嵌入式软件时采取必要的措施。 (1)提高代码的效率 ①switch-case 语句。在程序中经常会使用switch-case语句,每一个由机器语言实现的测试和跳转仅仅是为了决定下一步要做什么,就浪费了处理器时间。为了提高速度,可以把具体的情况按照它们发生的相对频率排序。即把最可能发生的情况放在第一,最不可能发生的情况放在最后,这样会减少平均的代码执行时间。 ② 全局变量。使用全局变量比向函数传递参数更加有效率,这样做去除了函数调用前参数入栈和函数完成后参数出栈的需要。当然,使用全局变量会对程序有一些负作用。 (2)减小代码的大小 嵌入式系统编程应避免使用标准库例程,因为很多大的库例程设法处理所有可能的情况,所以占用了庞大的内存空间,因而应尽可能地减少使用标准库例程。 (3)避免内存泄漏 用户内存空间(堆)为RAM中全局数据和任务堆栈空间都分配后的剩余空间,为了使程序能有足够的内存运行,必须在申请的内存不用后及时地将其释放,以确保再次申请时能有空间。如果程序中存在内存泄漏(即申请内存后没有及时释放)的情况,程序最终会因为没有足够的内存空间而无法运行。 3 嵌入式系统的广泛应用 嵌入式系统的应用前景是非常广泛的,人们将会无时无处不接触到嵌入式产品,从家里的洗衣机、电冰箱,到作为交通工具的自行车、小汽车,到办公室里的远程会议系统等等。特别是以蓝牙为代表的小范围无线接入协议的出现,使嵌入式无线电的概念悄然兴起。当嵌入式的无线电芯片的价格可被接受时,它的应用可能会无所不在。在家中、办公室、公共场所,人们可能会使用数十片甚至更多这样的嵌入式无线电芯片,将一些电子信息设备甚至电气设备构成无线网络;在车上、旅途中,人们利用这样的嵌入式无线电芯片可以实现远程办公、远程遥控,真正实现把网络随身携带。下面介绍几种具体的应用。 (1)嵌入式移动数据库 所谓的移动数据库是支持移动计算的数据库,有两层含义:① 用户在移动的过程中可以联机访问数据库资源。② 用户可以带着数据库移动。典型的应用场合有在开着的救护车上查询最近的医院。该系统由前台移动终端、后台同步服务器组成,移动终端上有嵌入式实时操作系统和嵌入式数据库。中国人民大学正在开发该系统,他们和Hopen公司合作,开发了前台移动终端"小精灵"。 (2)嵌入式系统在智能家居网络中的应用 智能家居网络(E-Home)指在一个家居中建立一个通信网络,为家庭信息提供必要的通路;在家庭网络操作系统的控制下,通过相应的硬件和执行机构,实现对所有家庭网络上家电和设备的控制和监测。其网络结构的组成必然有家庭网关。家庭网关主要实现控制网络和信息网络的信号综合并与外界接口,以便作远程控制和信息交换。不论是网关还是各家电上的控制模块,都需有嵌入式操作系统。这些操作系统必须具有内嵌式、实时性好、多用户的特点。南京东大移动互联技术有限公司研制的智能多媒体家庭网关,就是以嵌入式Linux作为该嵌入式设备的操作系统,设备之间的相互通信遵从蓝牙通信协议,可以支持多个设备同时接入到固定电话网、国际互联网等其它外部网络。 (3)嵌入式语音芯片 嵌入式语音芯片基于嵌入式操作系统,采用语音识别和语音合成、语音学层次结构体系和文本处理模型等技术;可以应用在手持设备、智能家电等多个领域,赋予这些设备人性化的交互方式和便利的使用方法;也可应用于玩具中,实现声控玩具、仿真宠物、与人对话的玩具;也能应用于车载通信设备实现人机交流。该芯片应用在移动通信设备中,比如,手机上短消息来时,我们不必费力地去看,而是可以听到声音。 (4)基于小范围无线通信协议的嵌入式产品 以蓝牙为代表的小范围无线接入协议与嵌入式系统的结合,必将推动嵌入式系统的广泛应用。近来,基于这些协议的嵌入式产品层出不穷,包括各种电话系统、无线公文包、各类数字电子设备以及在电子商务中的应用。这些产品以其微型化和低成本的特点为它们在家庭和办公室自动化、电子商务、工业控制、智能化建筑物和各种特殊场合的应用开辟了广阔的前景。 东南大学移动通信国家重点实验室以及依托实验室建立的南京东大移动互联技术有限公司,从1998年开始跟踪蓝牙技术,在香港特区政府创新科技基金、江苏省"十五"重大科技攻关以及国家"十五"科技攻关的资助下,先后设计和研制了多种基于蓝牙技术的嵌入式产品。其中包括符合Bluetooth V1.1标准的嵌入式PSTN网关和语音终端。它们基于蓝牙" 三合一电话"应用模型,选用了中国科学院凯思昊鹏软件技术工程有限公司提供的Hopen OS作为嵌入式开发的软件平台,选用华邦的W90221作为硬件平台。语音终端能通过PSTN网关以无线的方式接入到PSTN网络中,实现和PSTN网用户的互通。还有符合Bluetooth V1.1标准的嵌入式局域网接入点,它基于蓝牙" 局域网接入"应用模型,选用嵌入式Linux操作系统作为软件平台,选用Motorola公司的CodeFire 5272作为硬件平台。通过该接入点,终端用户可以自由地接入到Internet,可以同时支持多个终端用户连接到Internet。其它一些嵌入式产品包括智能多媒体家庭网关、远程抄表系统、信息家电等等。 |
|