嵌入式C语言系统开发代码优化研究_第1页
嵌入式C语言系统开发代码优化研究_第2页
嵌入式C语言系统开发代码优化研究_第3页
嵌入式C语言系统开发代码优化研究_第4页
嵌入式C语言系统开发代码优化研究_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    嵌入式c语言系统开发代码优化研究    薛亚 朱娅晶摘要:在嵌入式系统的应用过程中,对于应用软件有着非常高的要求。在对嵌入式系统进行c语言开发的过程中,务必要注意对程序代码的优化操作,通过该方法的应用能够有效提升代码的运行效率,促进代码的执行质量。虽然在一定程度上c编译器能够为代码提供一定的优化服务与帮助,但是从本质上来分析,c编译器为其提供的优化技术仅仅能做到速度和代码量的平衡。而无法实现提高代码运行效率以及促进代码执行质量。针对这一问题,有效的解决方法是:设计一个有效又快,且能够实现代码执行速度和代码量有效平衡的系统结构。研究将针对这一内容对

2、其进行分析,并提出如何有效优化c代码的方法与措施。关键词:嵌入式系统;c语言;代码优化;方法应用:tp311 :a:1009-3044(2020)29-0227-021 引言就当前情况而言,c语言已经成为嵌入式系统研究和开发的主要应用方法,且作为一种系统设计语言,c语言具备简单、高效的特点,以及兼容多种高级语言的功能。其本身具备强大的可移植功能和應用特征。特别是在嵌入式系统的开发和应用中.能够实现低成本、低消耗的产出,实现高质量、高效率的系统开发和应用。但是,在这一过程中需要探索的问题为:在这一背景下,基于c语言开发和设计的嵌入式系统在储存容量以及计算能力等方面的效率较低,所以,研究将针对这一

3、问题提出如何有效提升嵌入式c语言系统开发代码的应用效果,实现对c语言代码的优化与完善。2 c代码优化目前的c语言编译器能够在设计和开发系统的过程中对相关代码进行自动优化,但是这一优化模式是基于代码的长度与执行命令的速度基础上实现的,且是为了平衡两者之间的关系。如果在这一基础上想要实现能方便、更搞笑的c语言代码执行效率,就需要对其进行深度优化操作,且需要通过程序员对其进行人工优化,这样便可以有效提成c语言对嵌入式系统开发的应用质量和应用效率。2.1 变量使用在对嵌入式系统进行研究与设计的过程中,需要通过变量的使用对其进行有效的分析,以此实现对系统的完整架构,进而提升c代码的优化质量。在变量使用过

4、程中,可以通过全局变量的方法对其进行应用,该方法的应用比向函数传递参数的效果更好,且能够避免函数在被调用的过程中出现出栈和入栈的情况。但是,在应用全局变量的过程中同样有“副作用”,比如,变量的次序会让映像数据布局发生改变,而且在声明变量的应用中,还需要通过严密的设计方法对其进行控制储存器的有效分配与精确分布。在这一过程中,最高效的应用办法为:在编程的过程中,需要将相同的变量融合在一起对其进行应用和定义操作。而且在变量声明的过程中需要通过英文缩写对其进行表示,这样能够大大降低内存的占有空间,且可以提升运行速度。另外,针对不同类型的数据,设备生成的代码长度差异性加大,在这一过程中需要尽量选用长度较

5、短的代码。如,应用int相比long的速度更快。2.2 数组使用首先,需要对数组进行初始化操作,为了提升运行速度,可以在初始化的过程中预留数组范围,这样程序的运行效率会加倍提升。其次,可以寻找代替数组的方法,如,利用指针代替数组能够有效解决这一问题。一般情况下,指针的位置就是数据的储存位置,而数组是所有变量的综合表现方式。在这一情况下,便可以通过指针的运行来反应数组的索引,进而实现目标代码编辑的速度与质量不断提升。相比数组索引,指针运算效率更快,占内存空间更小,而且应用多为数组的差异也会更显著。在数组的使用过程中,任意一次的循环都需要对其进行下标“i”值的标记与计算,并且要在c语言编译器中观察

6、其指令周期,一般情况下为一次循环占有四个指令周期。当指针“p”位于array数组位置的时候,任意一次循环仅需要对“p”进行增量的操作,而且在这一背景下一次循环只占有两个指令周期。通过以上两种方法的应用,相比较之前的运算效率与命令执行能力,速度可提升一倍。2.3 宏的使用在应用c语言对嵌入式系统进行开发和设计的过程中,如果想要实现对代码的完整优化,就务必要应用宏对其进行支撑和帮助。这样,能够从根本上提升程序的运算效率,促进程序对命令的执行速度。从本质上分析,宏并非一种函数表现形式,只是在应用过程中接近于函数模式。在对函数进行调用的过程中,需要通过系统栈对其进行储存,而且cpu在函数调用的过程中还

7、要做好对数据的恢复准备。在这一背景下,可以有效进行出栈和进栈的操作。由此可见,占用cpu实践的除了代码本身之外,对函数进行调用也需要占据一定的时间。但是,通过宏定义对其进行设计便可以规避这一问题。宏定义能够提前做好代码嵌入工作,且可以将之融人开发系统中,进而省略函数调用环节,从占用cpu的时间转变为了占用较小的储存空间。该方法的应用还能够摆脱参数压栈、返回参数、c语言call调用以及执行return的操作步骤。在提升程序运行速度与执行效率的同时降低了操作的烦琐性。2.4 循环程序处理在系统的多重循环过程中,需要程序员将最长的循环内容设置在系统的最内层,同时需要将最短的循环内容设置在系统的最外层

8、。这样,能够有效提升cpu的运行效率,促进cpu的跨切循环次数。另外,如果在系统的循环过程中需要进行逻辑判断,且循环的次数相对较大,就需要将循环判断从系统内部嫁接到系统的外部。通过该方法的应用,能够实现高效率且频繁的操作,且可以打破原有模式下的流水线作业方式,进而使得编译器在对代码优化的过程中能够实现对整体代码的高效处理。2.5 优化分支语言从发生的频率排序对其进行分析,在按照条件选择执行语句的时候,需要结合系统的顺序对其进行比较,并且进行相应的匹配处理,以此实现满足条件的语句执行方法应用。同时,为了有效提升分支语句优化的速度,还可以结合实际情况对其进行发生相对频率的排序处理,在这一背景下需要

9、将最有可能发生的放在最前端,然后将发生可能最小的放在最末端,这一方法的应用能够有效提升程序的计算与执行速度。在进行switch语言编译的过程中,语言编译器会自动生成if-else-if嵌套代码,在此需要程序员对其进行顺序性比较,然后再对其进行匹配处理,进而实现满足条件的语句执行跳转。在switch语句中,case标号较多,在此需要程序员对其进行次数的控制,在这一过程中需要将发生频率较高的往前设置,将发生频率相抵较低的往后放置。抑或者可以将整个switch语句进行转化,利用嵌套语句的模式将之应用起来,然后将发生频率相对较高的编号放在外层,将发生频率较低的标号放在内层。另外,如果在switch的任

10、意一种模式中都有很多任务需要完成,便可以将switch语句进行指向函数指针的代替,以此提升任务完成的效率,降低任务完成的难度,并实现代码替换的目的。2.6 利用数字优化程序在对程序进行编写的过程中,需要几何相应的数学计算方法对其进行程序的运算与处理.并且需要在这一背景下对程序进行相应的检测,以此实现程序对命令的执行能力和执行效率,提升程序的运行效率级别。这是程序设计与开发过程中的一个重要环节,但是也是容易被人忽略的部分。而且对于部分经验欠缺的技术人员来说,这一部分的操作相对较为困难。比如,需要求证程序中1-100的总和。在此,可以通过以下两种方法对其进行求证:第一是inti,sum=0:for

11、(i=1:i<101:i+)sum+=i;第二是int sum;sum= 100*(100+1)/2;通过以上两种方法我们可以分析得出,在第一种方法中,系统需要循环100次才能解决这一问题,换言之,徐彤最少需要应用100个赋值才能对其进行100次准确的判断,而且在这一过程中还需要通过200次的加法计算才能得出最终结果。而在第二种应用方法中,系统仅仅需要完成1次加法、1次乘法和1次除法便可以将之准确的计算出来。从以上两种方法的应用中可以看出,第二种方法不论从简便性、效率还是代码编写的长度等方面均优越与第一种。因此,在对其进行嵌入式程序设计的过程中,可以首先选择应用第二种犯法对其进行程序运行

12、效率的提升与发展。2.7 应用位操作代替乘除法在计算机的应用程序中,数据是其中的最小位,也是可以直接操作的单位。正常情况下,对数据的操作需要借助硬件来完成,在硬件的控制下,数据可以得到相应的变化,完成相应的需求。在此,为了提升应用位操作的效率,并代替乘除法的计算模式,可以对其进行运行效率灵活性的提升。因为乘除法在cpu中无法直接运行,而是需要在一定条件下来实现。如,除法的应用为:int height,le n;height= 128/8;le n=256%8:乘法的应用为:int height,le n;height= 128>>3;le n=256 - (256 >>

13、3<<3);结合以上两种模式,代码生成过程中调用了出发和取余函数,所以,在这一过程中出现了函数调用的情况,同时还形成了寄存器参与运算的行为。由此可见,通过第二种方法对其进行代码的生成更加高效快捷。3 总结在日常系统设计过程中,嵌入式系统开发与设计中代码的优化工作需要应用到较大的成本,而且有很多开销项目属于“隐藏项目”。同时工作较为复杂,且消耗的资源相对较大。在这一过程中,编程需要尽量通过程序优化的方式降低以上问题的发生概率,缩减不必要的运算环节,在控制成本的过程中提升系统开发的整体效率与质量。研究分析了如何有效地提升代码的运行效率,但是在现实环境汇总,代码效率在得到提升和优化之后依然会出现其他方面的弊端与问题,甚至会对程序的整体运行造成严重的影响。比如,较为常见的有:代码大小的控制失效、程序可读性降低等。所以,在后续的嵌入式系统开发与设计中,需要通过科学合理的办法对其进行代码的优化,切不可一味追求速度,也不可一味追求稳定。参考文獻:1杨毅刚,范安宇,郑一超,等,基于c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论