首页 > 新闻详情

哈尔滨嵌入式培训就选达内教育

来源:哈尔滨达内IT培训班

时间: 2020/7/12 9:12:12

哈尔滨嵌入式培训就选达内教育,欢迎咨询哈尔滨达内嵌入式培训学校,IT培训选达内,17年专业IT培训机构,美国上市集团,开设IT培训班Java、python、大数据、linux、UI、会计等IT培训,泛IT培训和非IT培训共24大课程,了解更多相关培训课程欢迎咨询

嵌入式系统是指完成一种或几种特定功能的计算机系统,具有自动化程度高,响应速度快等优点,目前已广泛应用于消费电子,工业控制等领域。嵌入式系统受其使用的硬件以及运行环境的限制,非常注重代码的时间和空间效率,因此选择一种合适的开发语言十分重要。

目前,在嵌入式系统开发中可使用的语言很多,其中C语言应用得广泛。虽然用C语言编程具有许多优点,但基于嵌入式系统的C语言和标准C语言又有很大区别。接下来小编结合嵌入式系统的特点和高手们的一些积累,给大家整理出在程序设计中代码优化的一些小技巧。

1、嵌入式C语言的特点

作为一种结构化程序设计语言,C语言兼顾多种语言的特点,具有很强的功能性和可移植性。但在嵌入式系统开发中,出于对低价产品的需求,系统的计算能力和存储容量都非常有限,因此如何利用好这些资源就显得十分重要。开发人员应注意嵌入式C语言和标准C语言的区别,减少生成代码长度,提高程序执行效率,在程序设计中对代码进行优化。

2、C代码在程序中的优化

现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码长度的平衡。如果要获得更小且执行效率更高的代码,需要程序员手工对代码进行优化。

3、变量类型的定义

不同的数据类型所生成的机器代码长度相差很多,变量类型选取的范围越小运行速度越快,占用的内存越少。能够使用字符型(char)定义的变量,就不要使用整型(int)变量来定义;能够使用整型变量定义的变量就不要用长整型(long int),能不使用浮点型(float)变量就不要使用浮点型变量。相同类型的数据类型,有无符号对机器代码长度也有影响。因此我们应按照实际需要合理的选用数据类型。当然,在定义变量后不要超过变量的作用范围,如果超过变量的范围赋值,C编译器并不报错,但程序运行结果却错了,而且这样的错误很难发现。

4、算法优化

算法优化指对程序时空复杂度的优化:在PC机上进行程序设计时一般不必过多关注程序代码的长短,只需考虑功能的实现,但嵌入式系统就必须考虑系统的硬件资源,在程序设计时,应尽量采用生成代码短的算法,在不影响程序功能实现的情况下优化算法。

5、适当的使用宏

在C程序中使用宏代码可以提高程序的执行效率。宏代码本身不是函数,但使用起来像函数。函数调用要使用系统的栈来保存数据,同时CPU在函数调用时需要保存和恢复当前的现场,进行进栈和出栈操作,所以函数调用也需要CPU时间。而宏定义就没有这个问题:宏定义仅仅作为预先写好的代码嵌入到当前程序中,不产生函数调用,所占用的仅仅是一些空间,省去了参数压栈,生成汇编语言的call调用,返回参数,执行return等过程,从而提高了程序的执行速度。虽然宏破坏了程序的可读性,使排错更加麻烦,但对于嵌入式系统,为了达到要求的性能,嵌入代码常常是必须的做法。

此外,我们还要避免不必要的函数调用,请看下面的代码:

[plain]view plain copy print?void str_print(char*str){int i;

for(i=0;

i<strlen(str);

i++){printf("%c",str<i>);

}}void str_print1(char*str){int len;len=strlen(str);

for(i=0;

i&lt;len;

i++){printf("%c",str<i>);

}

}

请注意,这两个函数的功能相似。然而,个函数调用strlen函数多次,而第二个函数只调用函数strlen一次。因此第二个函数性能明显比个好。

6、内嵌汇编

程序中对时间要求苛刻的部分可以用内嵌汇编来重写,以带来速度上的显着提高。但是,开发和测试汇编代码是一件辛苦的工作,它将花费更长的时间,因而要慎重选择要用汇编的部分。在程序中,存在一个80-20原则,即20%的程序消耗了80%的运行时间,因而我们要改进效率,主要是考虑改进那20%的代码。

后,达内嵌入式培训机构提醒每一个it爱好者:如果你想要在短时间内入门,顺利掌握一门技术,建议还是认真学习视频。多练习,多动手。

优先领取试听课
版权所有:搜学搜课(wwww.soxsok com)