嵌入式实时程序设计中c/c++代码的优化

嵌入式实时程序设计中c/c++代码的优化

ID:15422522

大小:28.50 KB

页数:9页

时间:2018-08-03

嵌入式实时程序设计中c/c++代码的优化_第1页
嵌入式实时程序设计中c/c++代码的优化_第2页
嵌入式实时程序设计中c/c++代码的优化_第3页
嵌入式实时程序设计中c/c++代码的优化_第4页
嵌入式实时程序设计中c/c++代码的优化_第5页
资源描述:

《嵌入式实时程序设计中c/c++代码的优化》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式实时程序设计中C/C++代码的优化嵌入式系统与单片机应用嵌入式实时程序设计中C/C++代码的优化OptimizingCandC++Codeinembeddedreal—timeprogramming摘要:本文简单介绍了嵌入式实时程序设计的特点和嵌入式系统设计中语言的选择.着重介绍了以下几种在嵌入式实时程序设计中优化C/C++代码的方法关键词:嵌入式;实时操作系统(RTOS)C,C++;优化Abstract:Inthisarticlewewillintroducebrieflythecharacte

2、risticoftheembeddedreal——timeprogrammingandhowtochoosethelanguageinprogramming,explorethefollowingoptimizationtechniquesforCandC++codedevelopedforembeddedreal-timeprogramming.KeyWords:embedded,RTOS,C/C++,optimization1引言计算机技术和信息技术高速发展的今天.计算机和计算机技术大量应用在人们的

3、13常生活中,嵌入式计算机也得到了广泛的应用.嵌入式计算机是指完成一种或多种特定功能的计算机系统,是软硬件的紧密结合体.具有软件代码小.高度自动化,响应速度快等特点.特别适合于要求实时和多任务的应用体系.嵌入式实时系统是目前蓬勃发展的行业之一.但是,实时嵌入式系统的特点使得其软件受时间和空间的严格限制.加上运行环境复杂,使得嵌入式系统软件的开发变得异常困难.为了设计一个满足功能,性能和死线要求的系统.为了开发出安全可靠的高性能的嵌入式系统,开发语言的选择十分重要.2嵌入式实时程序设计中语言选择随着嵌入式

4、系统应用范围的不断扩大和嵌入式实时操作系统RTOS(RealTimeOperatingSystem)的广泛使用.高级语言编程已是嵌入式系统设计的必然趋势.因为汇编语言和具体的微处理器的硬件结构密切相关,移植性较差,既不宜在复杂系统中使用.又不便于实现软件重用;而高级语言具有良好的通用性和丰富的软件支持,便于推广,易于维护,因此高级语言编程具有许多优势.目前,在嵌入式系统开发过程中使张义青李华贵Zhang,YiqingLi,Huagui用的语言种类很多,但仅有少数几种语言得到了比较广泛的应用.其中C和C+

5、+是应用最广泛的.C++在支持现代软件工程,OOP(ObjectOrientedProgramming,面向对象的程序设计),结构化等方面对C进行了卓有成效的改进,但在程序代码容量,执行速度,程序复杂程度等方面比C语言程序性能差一些.由于C语言既有低级语言的直接控制硬件的能力,又有高级语言的灵活性.是目前在嵌入式系统中应用最广泛的编程语言.随着网络技术和嵌入式技术的不断发展,Java及嵌入式Java的应用也得到广泛应用.3C,C++代码在实时程序设计中的优化虽然使软件正确是一个工程合乎逻辑的最后一个步骤

6、.但是在嵌入式的系统开发中,情况并不总是这样的.出于对低价产品的需求,硬件的设计者需要提供刚好足够的存储器和完成工作的处理能力.所以在嵌入式软件设计的最后一个阶段则变成了对代码的优化.现代的C和C++编译器都提供了一定程度上的代码优化.然而,大部分由编译器执行的优化仅涉及执行速度和代码大小的一个平衡.你的程序能够变得更快或者更小,但是不可能又变快又变小.经过本人在嵌入式系统设计和实现过程中实践.下面介绍几种简单且行之有效的C/C++代码的优化方法.1.Inline函数在C++中,关键字Inline可以被

7、加入到任何函数的声明中.这个关键字请求编译器用函数内部的代码替换所有对于指出的函数的调用.这样做在两个方面快于函数调用:第一.省去了调用指令需要的执行时间;第二,省去了传递变元和传递过程需要的时间.但是使用这种方法在优化程序速度的同时,程序长度变大了,因此需要更多的ROM.使用这种优化在Inline函数频繁调用并且只包含几行代码的时候是最有效的.2.用指针代替数组一57—嵌入式系统与单片机应用在许多种情况下,可以用指针运算代替数组索引.这样做常常能产生又快又短的代码.与数组索引相比.指针一般能使代码速度

8、更快,占用空间更少.使用多维数组时差异更明显.下面的代码的作用是相同的,但是效率不一样.数组索引指针运算F0;;){p=a~ayA=array[t++];f0r(;;){a=冲:(p++);}}指针方法的优点是,array的地址每次装入地址P后,每次循环中,只需对P增量操作.在数组索引方法中.每次循环中都必须进行基于t值求数组下标的复杂运算.3.不定义不使用的返回值function函数定义并不知道函数返回值是否被使用.假如返回值从来不会被用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。