AVR_GCC(编译浮点的方法)的简单说明和个人的一些使用经.docVIP

AVR_GCC(编译浮点的方法)的简单说明和个人的一些使用经.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HYPERLINK /catshit322/article/details/6672497AVR-GCC 的简单说明和个人的一些使用经 分类: HYPERLINK /catshit322/article/category/862894gcc2011-08-09 14:4045人阅读HYPERLINK \l comments评论(0)HYPERLINK javascript:void(0);收藏HYPERLINK \l report举报 AVR-GCC 的简单说明和个人的一些使用经 对于 AVR-GCC 到底是什么,下文中有一些说明……这里也提出我的一些使用经验,以作抛 砖引玉之用…… 首先,AVR-GCC 的目标代码效率极高; 以 CodeVisionAVR 为对比(我没有 IAR 和 ICCAVR 的正版),同样功能的程序,经由 GCC 编译后的目标代码,通常比 CVAVR 的代码短 20%~50%,且运行速度更快,甚至在许多 小型的应用中,GCC 的代码效率都不输于汇编;不过,GCC 不支持 4 字节单精度浮点数 (只支持 8 字节双精度浮点数),所以在精度要求不高的浮点运算程序中,浮点函数部分 代码长度要增加 10% 左右,运行时间要增加 10%~30%——这可以说是一大遗憾…… 其次,GCC 的代码可读性和可移植性最高; 这个原理想来就不必说了……作为全球最大的自由软件开发组织的首选开发工具,GCC 是 C 语言事实上的工业标准,所以用 GCC 编制的程序,几乎完全不必考虑移植性问题——当 然,如果有嵌入式汇编,则另当别论——不过由于 GCC 的代码效率极高,所以基本上没有 需要使用汇编的地方了…… 再者,GCC 是完全的自由软件; GCC 是公开源代码的自由软件,因此使用它完全不必考虑价格因素,并且,由于有大量的高 手参与它的开发,所以无论是 GCC 本身,还是与 GCC 配套的 AVR 编译包,其更新速度和 效率都是其它开发工具所远不能比拟的,这就极大的减少了出现因为开发工具本身的故障引 起的程序错误的概率,降低了维护成本……不过,美中不足的是,GCC 没有中文版(——但 似乎目前能找到的 AVR C 编译器也没有一个是中文版的??^^) 至于说到界面问题……其实大可不必担心……AVRGCC 完全符合 Atmel 的 AVR Studio 所要 求的格式,所以可以直接用 AVR Studio 挂接 AVRGCC 对程序进行编制和调试,另外, avrfreaks( HYPERLINK // ) 还对 AVRGCC 的各个组件进行了整合,制作 了便于安装和使用的 32位Windows 版 AVRGCC,并且提供了完整的使用手册(包括如何将 AVRGCC 挂接到 AVR Studio 上,当然,仍然是英文的……) 对 AVRGCC 的宣传到此为止(耿老先生别生气……不是存心搅你生意的……^^),以下是我 的一些使用经验…… 1、AVRGCC 不能像 CVAVR 或 ICCAVR 那样把特殊 I/O 口当变量来用,怎么办? 其实,使用 AVRGCC 的 inp(port) 和 outp(data,port) 宏就是最好的方法,但如果真的需 要延续以往的使用方式,也可以照以下方式办理: #define dPORTA (*(unsigned char *)(PORTA + 0x20)) 如此,就定义了一个 dPORTA 的伪变量,可以直接用于表达式中,并且用此种方式也可以实 现类似 C51 中的 sfr 变量类型…… 2、AVRGCC 不能编译带浮点函数的程序,怎么办? 很简单,在工程所在目录的 makefile 文件中,把 LDFLAGS = 项目最后加上 .-lm 就可以 了…… 3、怎么改变目标程序的优化方式? 在 makefile 文件的 CPFLAGS = 行中,加入 -Ox(x=1,2,3,s)就可以了,如果已经有了 - O 的项目,就改变现有的,1~3 代表优化方式,s 代表按代码长度优化…… 4、AVRGCC 能不能为 AT90S1200、ATTiny 系列进行 C 语言编程? 答

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档