历史上的今天
今天是:2025年02月22日(星期六)
2020年02月22日 | 事无巨细,GCC AVR入门详解
2020-02-22 来源:eefocus
简介:乘着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工程的界面
可以看出来,GCC AVR有个标准的windows软件界面,有常见的菜单栏工具栏等等,选项也并不多,整个软件界面内容也不多,应该说是很亲切的界面。
下面我们来看怎样用GCC AVR进行开发。
第一步,首先找到开始系统菜单里的WINAVR程序文件夹,双击打开Programmers Notepad,启动GCC AVR,然后点击菜单栏里的File—New Project(s),弹出以下对话框:
将工程名和保存位置填好之后,确定,至此新建一个GCC AVR的工程完毕,可见如下界面:
第二步,添加.C文件,点击工具栏里的“新建”按钮,出现一个名字为NEW*的文本文件,而此时注意工具栏里的“保存”按钮是灰色的无法点击,所以要在这个文本里随意输入任意字符,这时可以将这个文本保存了。将文本在工程文件夹里保存为.c文件,这个就是我们将要用来编辑源代码的程序文件。第二步完成后有下图界面(非全图):
第三步,将建好的C文件添加进GCC工程里。具体操作如下:右键工程文件(注意是工程文件而不是工程文件组),选择Add Files,选择刚才新建好的C文件,确定即可实现添加,添加完毕后可以输入源程序,也可以稍后几步再输。如下三图指示,第三图为添加完毕之后所见界面:
第四步,添加Makefile文件。
PS:如果说GCC AVR有什么缺点的话,要用户自己配置Makefile文件应该算其中一大缺点。Makefile是配置GCC AVR的编译信息的文件,GCC就是根据这个文件的信息来编译的,里面包含了MCU信号,频率,输出信息及优化选项等信息,Makefile每个GCC工程是必须要有的。不过配置Makefile其实也非常简单。
首先找到WINAVR程序文件组里的MFile,就是一盏黄色茶壶的的图标,打开之后见如下界面:
接着点击File——Save as,将此文件另存到你的工程文件夹里。然后类似于添加C文件的操作,把Makefile添加至工程中。完成后有下图界面,注意看左边工程文件区:
第五步,配置Makefile文件。双击打开Makefile,找到如下地方:
其中MCU=“你的主控芯片型号”,F_CPU="当前主控芯片的工作频率",FORMAT=iHEX表示会输出HEX结尾的文件,可以供我们烧写,最后一个要注意(红色框),TARGET="你的C文件名,但是不要填写后缀名",如上图图所示。如实更改完以上四项信息之后(一般只需要改第一和第四项),保存Makefile文件。
第六步,接下来在你添加的C文件有了源代码之后,保存C文件。然后如下图所指,依次点击Tool——[WinAVR]Make All,这时GCC AVR就开始编辑源文件了。
编译很快完成,GCC AVR的编译速度还是过得硬的。软件会有编译结果框,里面会包含有一系列的信息,包括错误和警告信息,我们会经常根据这些信息进行程序的修改。编译结果的最后两行是此次编译的错误个数和编译时间的统计,如果Process Exit Code后面的数字为0,则表示被编译的源代码基本上不会出现什么大问题,可以保证没有大的语法错误(但是不表示你的程序功能是正常的,质量是完美的)。
最后,你会发现工程程序文件夹多了许多文件,值得一提的是,后缀名为elf的文件是仿真文件,可以在AVR studio里进行仿真:
至此,一个简单完整的GCC AVR工程开发流程到这里就告完结,一切复杂的过程都是这样开始的。
希望能给需要的人一些帮助。
史海拾趣
|
正确配置AVR熔丝位 对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。 (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unpro ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:06 编辑 哪位大哥知道怎么做?或者以前做过,请告知一声!老师给的题目,也没说什么要求!网上找了半天都没什么东西,急啊!拜托了!!!我的邮箱:szlt520@yahoo.com.cn [ 本帖最后由 open82977352 于 2010 ...… 查看全部问答> |
|
请问: 在操作系统中,一般的调度 和 在中断中的调度 到底是什么原因导致其不同? (我看了几个系统,两个调度都是用不同的 代码段,似乎主要是要记录 nest的数值,但我觉得既然hardstk 中都已近保 ...… 查看全部问答> |
|
如何集成第三方软件的帮助文档到 WinCE 本身的帮助里去呢 我们开发了一个软件在WinCE上, 运行很好。 老板要求把我们自己的帮助文档集成到WinCE的帮助文档里,也就是通过start->help 能访问。我用的是windows mobile 6,ce os 5.2. 那位高人能点拨一下呢, 先谢了。… 查看全部问答> |
|
哪位高手调通过M16读AT88SC0104的程序啊,我们公司以前调通过atmel9261读at88sc0104,我只是把底层几个函数给改了,但就是读不出正确的数据,我读的是at880104 0x60寄存器的值,改的底层函数如下: void _scl_config_out(void) { &nbs ...… 查看全部问答> |
|
library ieee; use ieee.std_logic_1164.all; USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity SCCB is port( GCLK: IN std_logic; SIOC : OUT s ...… 查看全部问答> |
|
五舟是国内服务器市场快速成长的新生力量,专注于服务器平台与存储产品的销售与服务,为科学研究与商业应用提供最佳性价比的服务器和存储解决方案。 自 1995 年进入服务器行业, 2002 年创立五舟品牌以来,已经成功的为几千家客户提供了优质的产 ...… 查看全部问答> |




