[原创] 第1/15原创:事无巨细,GCC AVR

losingamong   2010-3-10 14:13 楼主
事无巨细,GCC AVR入门详解

    乘着Cepark电子园正在搞AVR单片机开发板优惠活动,花160块钱买了他们提供的散件。近日终于收到了,虽然是散件,自己焊的也很难看,但好歹能用,足够我折腾好些日子了。希望接下去的短短日子里,能小有收获,即便是最简单的东西也希望跟大家分享。
     这是第一篇,我说说AVR的集成开发环境。也就是常说的IDE(Integrated Development Environment)。图片比较多,虽然用软件处理过体积,网页可能还是比较慢,还请见谅。
     现今世界上的AVR开发环境可以说是百花齐放了,互相当然各有长短,我们看看都有哪些:
     首当其冲的应该还是IAR,为什么呢,因为当初AVR还在ATMEL胎中酝酿的时候,IAR公司参与了AVR的设计,因此可以认为IAR有更为正统的血液,它最了解AVR,它的编译器编出来的代码应该最优秀。好比你生的孩子还是你最了解——至少相当长一段时间是这样的。事实上,IAR for AVR确实展现了这个实力,它的功能确实最为强大,无论是源代码编写还是软件乃至硬件仿真,编译出来的代码也十分优秀。但是事物总是相对存在的,优点有时就意味着缺点。IAR功能全面而强悍,代价就是它的软件界面比较复杂,设置选项多,网上的资料也比较少,最要命的是这个软件非常的贵,好吧你说你有破解版,但是破解文件一般并不通用,而且破解方法一般都稍显繁琐。以上几条,对于新接触AVR的人来说,几乎是迈不过的坎。
    接下来是官方的AVR studio,官方出品,但是一般没有人用这个软件来做开发环境,为什么呢,因为它本身不支持C语言,一般我们只用它的仿真功能搭配其他C编译器来用。
    第三个,WINAVR,又称GCC AVR。GCC AVR应该是目前使用率最高的AVR开发环境了,软件体积小,界面简单易用,教程资料很多,代码效率高,最重要的是,它是完全免费的。但是它几乎没有仿真调试的功能。所以我首要推荐GCC AVR+AVR studio搭建你的AVR IDE。
    第四个,ICC AVR,大部分AVR教材所用的示例软件,也是十分简单易用,适合新手初学,在此也推荐选用,但是它的功能一般,bug比较多,比较高级的要求它应付起来就有些吃力了。
    此外还有CODEVISION,最大的优点就是它的界面很像keil,这会吸引到众多从51转到AVR的人,不过它有2K代码限制,破解方法又不多。略过不表。
    归根结底,编译器始终不见得是最重要的,最重要的是使用编译器的人罢。只要适合你,你能用之写出优秀的程序,就是最好的。
    我选择了GCC AVR。现在我来讲讲GCC AVR的一个最简单的开发流程。首先要从网上下载WINAVR这个软件,因为是免费软件,应该很容易找到。之后一路NEXT,直到安装完毕。
    下图显示了一个完整的GCC工程的界面
1.jpg
可以看出来,GCC AVR有个标准的windows软件界面,有常见的菜单栏工具栏等等,选项也并不多,整个软件界面内容也不多,应该说是很亲切的界面。
    下面我们来看怎样用GCC AVR进行开发。
第一步,首先找到开始系统菜单里的WINAVR程序文件夹,双击打开Programmers Notepad,启动GCC AVR,然后点击菜单栏里的File—New Project(s),弹出以下对话框:  
2.jpg
将工程名和保存位置填好之后,确定,至此新建一个GCC AVR的工程完毕,可见如下界面:
3.jpg
第二步,添加.C文件,点击工具栏里的“新建”按钮,出现一个名字为NEW*的文本文件,而此时注意工具栏里的“保存”按钮是灰色的无法点击,所以要在这个文本里随意输入任意字符,这时可以将这个文本保存了。将文本在工程文件夹里保存为.c文件,这个就是我们将要用来编辑源代码的程序文件。第二步完成后有下图界面(非全图):
4.jpg
第三步,将建好的C文件添加进GCC工程里。具体操作如下:右键工程文件(注意是工程文件而不是工程文件组),选择Add Files,选择刚才新建好的C文件,确定即可实现添加,添加完毕后可以输入源程序,也可以稍后几步再输。如下三图指示,第三图为添加完毕之后所见界面:
5.jpg
6.jpg    
7.jpg
第四步,添加Makefile文件。
PS:如果说GCC AVR有什么缺点的话,要用户自己配置Makefile文件应该算其中一大缺点。Makefile是配置GCC AVR的编译信息的文件,GCC就是根据这个文件的信息来编译的,里面包含了MCU信号,频率,输出信息及优化选项等信息,Makefile每个GCC工程是必须要有的。不过配置Makefile其实也非常简单。
首先找到WINAVR程序文件组里的MFile,就是一盏黄色茶壶的的图标,打开之后见如下界面:
8.jpg   
接着点击File——Save as,将此文件另存到你的工程文件夹里。然后类似于添加C文件的操作,把Makefile添加至工程中。完成后有下图界面,注意看左边工程文件区:
10.jpg
第五步,配置Makefile文件。双击打开Makefile,找到如下地方:
9.jpg
   
其中MCU=“你的主控芯片型号”,F_CPU="当前主控芯片的工作频率",FORMAT=iHEX表示会输出HEX结尾的文件,可以供我们烧写,最后一个要注意(红色框),TARGET="你的C文件名,但是不要填写后缀名",如上图图所示。如实更改完以上四项信息之后(一般只需要改第一和第四项),保存Makefile文件。
第六步,接下来在你添加的C文件有了源代码之后,保存C文件。然后如下图所指,依次点击Tool——[WinAVR]Make All,这时GCC AVR就开始编辑源文件了。
11.jpg
编译很快完成,GCC AVR的编译速度还是过得硬的。软件会有编译结果框,里面会包含有一系列的信息,包括错误和警告信息,我们会经常根据这些信息进行程序的修改。编译结果的最后两行是此次编译的错误个数和编译时间的统计,如果Process Exit Code后面的数字为0,则表示被编译的源代码基本上不会出现什么大问题,可以保证没有大的语法错误(但是不表示你的程序功能是正常的,质量是完美的)。
12.jpg   
最后,你会发现工程程序文件夹多了许多文件,值得一提的是,后缀名为elf的文件是仿真文件,可以在AVR studio里进行仿真:
13.jpg
至此,一个简单完整的GCC AVR工程开发流程到这里就告完结,一切复杂的过程都是这样开始的。
希望能给需要的人一些帮助。

回复评论 (29)

呵呵,支持原创啊
点赞  2010-3-10 14:19
第一次在这里发帖,图片编辑不太好使啊
没有附件批量上传,而且所见即所得模式图片是完全显示的,发出来就不是了
点赞  2010-3-10 14:37
其实,关于AVR的编译器,还是很多的,ICC AVR,CODEVERSION
GCC ,不过GCC还是相当不错的,顶一下
点赞  2010-3-10 17:13
引用: 原帖由 losingamong 于 2010-3-10 14:37 发表
第一次在这里发帖,图片编辑不太好使啊
没有附件批量上传,而且所见即所得模式图片是完全显示的,发出来就不是了


所见即所得的模式图片是完全显示的,发出来就不是了

请详细说说。
加油!在电子行业默默贡献自己的力量!:)
点赞  2010-3-11 13:38
引用: 原帖由 soso 于 2010-3-11 13:38 发表


所见即所得的模式图片是完全显示的,发出来就不是了

请详细说说。

编辑框里,图片都是完全显示的,但是现在帖子里图片的右边被挡住一点了……
点赞  2010-3-11 15:25
引用: 原帖由 losingamong 于 2010-3-11 15:25 发表

编辑框里,图片都是完全显示的,但是现在帖子里图片的右边被挡住一点了……


好的 我们来处理下
加油!在电子行业默默贡献自己的力量!:)
点赞  2010-3-11 15:32
引用: 原帖由 soso 于 2010-3-11 15:32 发表


好的 我们来处理下

有劳管理员
点赞  2010-3-11 15:49
介绍的很是详细,觉得比有些说明说说的都贴切!支持!
点赞  2010-3-11 15:51
引用: 原帖由 losingamong 于 2010-3-11 15:49 发表

有劳管理员


已经调整了 你看下 如有问题 再联系
加油!在电子行业默默贡献自己的力量!:)
点赞  2010-3-11 18:35
引用: 原帖由 soso 于 2010-3-11 18:35 发表


已经调整了 你看下 如有问题 再联系

nice,有劳管理员
这个帖子会发到15/15,请多多指教
点赞  2010-3-11 19:03
支持原创,期待下期!
点赞  2010-3-11 19:30
支持楼主,顶顶
点赞  2010-3-12 00:09
呵呵,继续哦,都在等着呢
点赞  2010-3-12 09:19
楼主真厉害............
不断地学习,才会有创新! 淘宝小店:手机、qq点卡、游戏点卡自动充值 http://shop63727265.taobao.com/
点赞  2010-3-13 13:38
我都有PDF文档了!!
点赞  2010-10-24 09:14

支持下

:P
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2010-10-24 10:40
好贴。要顶啊。 分享才是王道,谢谢楼主!
点赞  2010-11-10 00:09
这个很详细哦 谢谢诶了
点赞  2011-1-29 19:36
顶起,虽然不用AVR,还是谢谢楼主
点赞  2011-1-29 20:29
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复