WinAVR是开源社区的一个用来开发AVR单片机的GCC编译器,WinAVR可运行于32位Windows操作系统中,并兼容64位Windows操作系统。WinAVR 是GNU 组织推出的AVR 单片机的gcc 编译器,该编译器的编译效率极高。gcc 编译器是开源的,是免费的。使用gcc 编译器,可以掌握标准c 的语法等,为学习Linux 等奠定基础。

 

软件名称:
winavr(GCC) 20100110 官方安装版
软件大小:
28MB
更新时间:
2017-09-21

 

winavr 编译器安装教程:

下载完成后,运行安装程序。

选择语言

WinAVR,WinAVR教程

你没有必要因为编程而选择英文,也可以选择你更熟悉的中文。

欢迎界面

WinAVR,WinAVR教程

欢迎界面将提示你安装马上开始。建议你关闭其他正在运行的程序,正在进行的系统更新。屏幕背景将变成蓝色,任务栏会消失。这只是安装程序为了让你集中注意力的做法。你依然可以通过键盘上的Windows键调出开始菜单和任务栏。

许可协议

WinAVR,WinAVR教程

WinAVR在GNU GPL许可协议下发布。接受许可协议,以继续安装。

选择路径

WinAVR,WinAVR教程

选择安装路径。最佳的做法是安装在一个不包含空格的路径下,这样会避免很多可能的问题。

选择组件

WinAVR,WinAVR教程

选择额外的组件。

Install Files,安装文件。它是必要的选项。

Add Directories to PATH,将程序目录添加到PATH环境变量。强烈建议的选项,添加到PATH之后,你就可以直接调用WinAVR命令,而不必切换到程序路径。

Programmers Notepad,代码编辑器,也是一个简单的IDE。建议安装,它体积小巧,却能为编程带来极大便利。

安装进度

WinAVR,WinAVR教程

安装过程中会显示安装进度,此过程会持续几分钟,这取决于你的计算机速度。

安装完成

WinAVR,WinAVR教程

若安装顺利完成,则会跳到完成界面。点击完成离开安装界面。

winavr 编译器简单使用教程:

启动Programmer's Notepad

在开始菜单中寻找WinAVR 20100110(也可能是其他版本号) > Programmers Notepad [WinAVR],打开程序。

WinAVR,WinAVR教程

新建项目

File > New > Project,新建一个项目。

WinAVR,WinAVR教程

指定项目的名字,并选择项目路径。项目路径是存放的所有项目文件,最好为它选择一个一个单独的空目录。

WinAVR,WinAVR教程

编写代码

在启动Programmer's Notepad时,已经默认加载了一个新建的空白文档,这个文档还没有被保存,也没有设置文件类型,文本不会被识别为代码。如果打开的时候没有文件,则可以点击工具栏左侧的新建文件按钮,创建一个空白文件。

WinAVR,WinAVR教程

我们可以先随意输入一些文本,然后保存。保存按钮在工具栏的左侧,也可以再“File”菜单里选择“Save”。注意文件的保存的文件夹最好与前面项目文件夹一致。文件名以“.c”结尾可以帮助Programmer's Notepad识别代码类型。

WinAVR,WinAVR教程

然后,我们就可以将此C源代码文件包含到项目中去了。右击窗口左侧项目面板中的我们前面新建的项目,在右键菜单中选择“Add Files”。之所以要将C代码文件添加到项目中,是为了便于项目的管理。

WinAVR,WinAVR教程

现在,就可以在C文件中添加代码了。试着将下面的代码复制到编辑器中,或者自己书写代码。


//此程序实现8个LED的亮与灭
//所使用的开发板为MEGA128,PB接8个LED灯,1为亮,0为灭
//若使用不同的开发板,则应相应修改

#include <avr/io.h> //AVR头文件
#include <util/delay.h> //内部函数头文件

int main(void)
{
PORTB = 0xff;//初始化PB口
DDRB = 0xff;//设置PB口为输出

while(1){
& PORTB = 0xff;
& _delay_ms(500);//延时500毫秒
& PORTB = 0x00;
& _delay_ms(500);//延时500毫秒
}
}
输入代码之后,编辑器能够自动识别代码,并以不同颜色标记。

WinAVR,WinAVR教程

如此,代码便编辑完毕了。但现在还不能直接开始编译,因为还没有配置makefile。

Makefile

在开始菜单中打开WinAVR > MFile [WinAVR]

WinAVR,WinAVR教程

在程序菜单打开Makefile,在菜单中选择各个选项。

首先是Main file name,即包含main函数的C文件。只需要输入文件名即可,不需要后缀(.c)。

WinAVR,WinAVR教程

WinAVR,WinAVR教程

下面是MCU type,也就是单片机的型号,这里使用的是ATmega系列的atmega128。

WinAVR,WinAVR教程

当你选择了选项之后,会发现Makefile文件多了一行“MCU = atmega128”。这个小程序的作用就是在你通过菜单修改选项时,同步修改makefile文件。

然后是Output format,即编译输出的文件类型。这里我们选择ihex(十六进制文件),这种文件可被下载程序下载到单片机中。

WinAVR,WinAVR教程

接下来是Optimization level选项,选择默认的s即可。

WinAVR,WinAVR教程

之后是Debug format选项,这里我们使用GDB和Insight调试工具,因此要选择第一个“ELF/stabs”。

WinAVR,WinAVR教程

C standard level,即C语言标准。C99和GNU99是不同的,这里我们选择GNU99。

WinAVR,WinAVR教程

C/C++ source files,C/C++源文件。如果除了main文件还有其他C/C++源代码文件,则需要用此选项添加。

WinAVR,WinAVR教程

还有一个芯片的晶振频率,需要手动修改。在菜单中选择Makefile > Enable Editing of Makefile,启动手动编辑。现在就可以像编辑文本一样修改makefile文件了。找到


# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the 
# processor frequency. You can then use this symbol in your source code to 
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
# Typical values are:
#&  F_CPU =  1000000
#&  F_CPU =  1843200
#&  F_CPU =  2000000
#&  F_CPU =  3686400
#&  F_CPU =  4000000
#&  F_CPU =  7372800
#&  F_CPU =  8000000
#&  F_CPU = 11059200
#&  F_CPU = 14745600
#&  F_CPU = 16000000
#&  F_CPU = 18432000
#&  F_CPU = 20000000
F_CPU = 8000000

将F_CPU的数值修改为与你的单片机一致。F_CPU的值也可在C代码中用#define F_CPU设定,代码中的定义会覆盖makefile中的定义。

编辑好之后,File>Save as,保存此makefile文件到项目文件夹下,文件名为必须为Makefile。

编译程序

有了Makefile之后,就可以编译程序了。

回到Programmer's Notepad,确保代码已经保存。使用菜单栏的Tools > Make all [Win AVR],编译程序。

WinAVR,WinAVR教程

若程序没有错误,编译就能顺利完成。若有错误,则会在下方的结果中提示。

WinAVR,WinAVR教程

现在我们转到项目所在的文件夹,就能看到WinAVR编译输出的文件了。

WinAVR,WinAVR教程

.hex后缀的文件是Flash文件,可以通过烧写程序下载到AVR单片机的Flash中去。

.eep后缀的文件是EEPROM文件,可以通过烧写程序下载到AVR单片机的EEPROM中去。

现在,一个AVR项目就已经完成了。