宁波欣创电子科技官网
收藏本站
搜索

扫一扫,访问微社区

QQ登录

只需一步,快速开始

注册 找回密码
官方旗舰店新品上线AVR入门提高步步通视频SD卡高清视频教程免费下载AVR单片机十日通全集视频MSP430单片机视频教程

39

主题

39

帖子

151

积分

超级版主

Rank: 8Rank: 8

积分
151

活跃会员推广达人论坛元老

发表于 2013-12-21 22:50:28 | 显示全部楼层 |阅读模式

  AVRGCC开发环境以标准的C语言格式为基本规范,并且作为免费的高级语言编译器,为广大的AVR开发者提供了良好的编译环境。
  AVRGCC环境提供多级自动优化,包括-00,-01,-02,-03,-0s,一般情况下新建项目默认的优化等级为-0s,为最高级优化,-00为不使用优化设置。
  优化可以带来明显的好处,那就是可以将代码的编译效率提高,减小代码的冗余,对于较大的程序文件来说,优化可以使代码在AVRGCC下做到最小,从而节约单片机的空间。
  但是优化同时也可能带来其他的问题,比如优化可能对延时程序或者一些低效率的代码进行优化,优化的结果将会导致程序失去原来的逻辑本意,从而使程序出现非正常的结果。

  比如在中断中设置了标志位,在主程序中通过判别该标志位来进行相关操作,如果设置启用了优化度,带来的效果可能就是主程序不会对该标志位进行识别。为了避免出现这样的结果,对于中断内部的标志位,尽量使用 “volatile”进行说明,将标志位变量定义为“volatile”。该类型的申明将通知编译器,不对该变量进行优化。从而可以实现正常的功能。

  使用仿真器进行在线调试时,如果需要查看局部变量,优化度最好设置为-00,此时可以查看,否则将出现不能查看变量的变化情况

  使用AVRGCC作为项目开发的工作者,在遇到一些比较没有道理的程序问题之后,可以尝试修改优化度等级进行判断,如果程序空间允许,可以关闭优化,获取最原始的程序逻辑 。


精品嵌入式产品尽在宁波欣创电子科技官方旗舰店http://avrgcc.taobao.com
您需要登录后才可以回帖 登录 | 立即加入

在线客服

Archiver|手机版| ( 浙ICP备09058229号浙公网安备33020502000039号 )     

返回顶部