2022年单片机C语言程序优化 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年单片机C语言程序优化 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机C语言程序优化 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机 C 语言程序优化对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一 ,一般是优化了代码的尺寸,就会带来执行时间的增加,如果优化了程序的执行速度 ,通常会带来代码增加的副作用,很难鱼与熊掌兼得,只能在设计时掌握一个平衡点。一、程序结构的优化1、程序的书写结构虽然书写格式并不会影响生成的代码质量,但是在实际编写程序时还是应该尊循一定的书写规则 ,一个书写清晰、 明了的程序 ,有利于以后的维护。 在书写程序时,特别是对于While 、 for 、do while 、ifelst 、switchcase 等语句或这些语句嵌套组合时,应采用 “ 缩格 ”
2、 的书写形式 , 2、标识符程序中使用的用户标识符除要遵循标识符的命名规则以外,一般不要用代数符号(如 a、b、x1 、y1) 作为变量名 ,应选取具有相关含义的英文单词(或缩写 )或汉语拼音作为标识符,以增加程序的可读性,如: count 、number1、red 、work等。3、程序结构C 语言是一种高级程序设计语言,提供了十分完备的规范化流程控制结构。因此在采用C 语言设计单片机应用系统程序时,首先要注意尽可能采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,便于调试和维护。于一个较大的应用程序,通常将整个程序按功能分成若干个模块,不同模块完成不同的功能。各个模块可以分别编写
3、,甚至还可以由不同的程序员编写 ,一般单个模块完成的功能较为简单,设计和调试也相对容易一些。在C 语言中 ,一个函数就可以认为是一个模块。所谓程序模块化,不仅是要将整个程序划分成若干个功能模块,更重要的是 ,还应该注意保持各个模块之间变量的相对独立性,即保持模块的独立性,尽量少使用全局变量等。对于一些常用的功能模块,还可以封装为一个应用程序库,以便需要时可以直接调用。 但是在使用模块化时,如果将模块分成太细太小,又会导致程序的执行效率变低( 进入和退出一个函数时保护和恢复寄存器占用了一些时间)。4、定义常数在程序化设计过程中,对于经常使用的一些常数,如果将它直接写到程序中去,一旦常数的数值发生
4、变化 ,就必须逐个找出程序中所有的常数,并逐一进行修改,这样必然会降低程序的可维护性。因此 ,应尽量当采用预处理命令方式来定义常数,而且还可以避免输入错误。5、减少判断语句能够使用条件编译(ifdef)的地方就使用条件编译而不使用if 语句 ,有利于减少编译生成的代码的长度。6、表达式对于一个表达式中各种运算执行的优先顺序不太明确或容易混淆的地方,应当采用圆括号明确指定它们的优先顺序。一个表达式通常不能写得太复杂,如果表达式太复杂,时间久了以后,自己也不容易看得懂,不利于以后的维护。7、函数对于程序中的函数,在使用之前 ,应对函数的类型进行说明,对函数类型的说明必须保证它与原来定义的函数类型一
5、致,对于没有参数和没有返回值类型的函数应加上“ void ” 说明。如果果需要缩短代码的长度,可以将程序中一些公共的程序段定义为函数,在 Keil 中的高级别优化就是这样的。 如果需要缩短程序的执行时间,在程序调试结束后,将部分函数用宏定义来代替。注意 ,应该在程序调试结束后再定义宏,因为大多数编译系统在宏展开之后才会报错,这样会增加排错的难度。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 8、尽量少用全局变量,多用局部变量。
6、因为全局变量是放在数据存储器中,定义一个全局变量,MCU 就少一个可以利用的数据存储器空间,如果定义了太多的全局变量,会导致编译器无足够的内存可以分配。而局部变量大多定位于MCU 内部的寄存器中,在绝大多数MCU 中,使用寄存器操作速度比数据存储器快,指令也更多更灵活,有利于生成质量更高的代码,而且局部变量所的占用的寄存器和数据存储器在不同的模块中可以重复利用。9、设定合适的编译程序选项许多编译程序有几种不同的优化选项,在使用前应理解各优化选项的含义,然后选用最合适的一种优化方式。 通常情况下一旦选用最高级优化,编译程序会近乎病态地追求代码优化,可能会影响程序的正确性,导致程序运行出错。因此应
7、熟悉所使用的编译器,应知道哪些参数在优化时会受到影响,哪些参数不会受到影响。在 ICCAVR中 ,有“ Default” 和“ Enable Code Compression” 两个优化选项。在 CodeVisionAVR中,“ Tiny ” 和“ small ” 两种内存模式。在 IAR 中,共有 7种不同的内存模式选项。在 GCCAVR 中优化选项更多,一不小心更容易选到不恰当的选项。二、代码的优化1、选择合适的算法和数据结构应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年单片机C语言程序优化 2022 单片机 语言 程序 优化
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内