您的位置:首页 > 热点 >

AVR单片机学习活动之带你学会WinAVR

对于GCC(注:本文中所说GCC与WINAVR是同一个概念)的介绍这里不做赘述,对于学习AVR单片机的朋友相信都听说过这款编译软件。AVR的开发软件很很多,下面是本人在网上搜索到的对于几个编译软件的一点比较,仅供参考:相信对于每个已经在学习AVR的朋友都有一款自己喜欢使用的编译软件,我们推荐使用GCC,原因是它是真正的免费的,对C语言的支持是很好的。可能很多朋友对于使用汇编编程还是使用C语言编程都有不同的见解,在这里我们推荐使用相对高级的C语言进行编程,现在一个好的编译软件对于程序的优化是可以让人接受的,其编译出的程序效率足以满足我们的要求,并且其良好的可移植性为不同平台下的程序编写提供了方便。这里是GCC的下载页面: http://sourceforge.net/projects/winavr/files/GCC对于初学者可能不是太容易入门,我在这里做这个简单的教程,希望对于初学AVR并且想以GCC为开发软件的朋友有所帮助。本教程将以如下几个部分进行:*GCC软件的安装*建立并编译第一个GCC工程文件*配置Makefile文件1、GCC软件的安装如果你按照上面所说的链接下载到最新版的GCC安装软件,请找到安装软件的位置,文件名为WinAVR-20090313-install.exe。双击运行,进行安装。在安装步骤上与在WINDOWS下安装其他软件没有很大的区别,大致步骤如下:选择安装语言,这里选择简体中文。一直点下一步,然后选择安装位置。这里选择要安装的组件,如果电脑空间不是很拥挤的话建议完全安装。点击安装进行GCC的安装。完成安装。安装完成之后会弹出一个,WINAVR USER MANUAL,这个关掉即可,这是一个不错的参考资料,有兴趣的朋友可以仔细看一看。完成之后在开始->程序->WINAVR-20090313里面可以找到安装的GCC软件。2、建立并编译第一个GCC工程文件这一部分我说一下AVR GCC中如何建立工程并编辑程序代码。点击上图中的Programmers Notepad[WinAVR],启动我们的 AVR GCC主程序。如图:其界面跟常用的WINDOWS下的程序是一样的,没有特别的地方,在这里不做详细的说明,用到的时候我们再进行说明。点击File->New->Project,建立一个新的工程,如下图:输入工程的名字,选择工程的存放路径,可以有中文路径。然后点击OK按钮。在界面中间的文本编辑窗口中,敲一个空格,或者键入任何内容,在工具栏上的保存按钮将变成有效的状态(默认保存按钮是无效的!)。点击保存,在弹出的“另存为”对话框中,将文件保存为main.c文件,然后放到工程目录下(刚才建立的test工程目录)。如果不小心把这个空白的默认为new的编辑窗口关掉或者开始的时候就没有,可以点击file菜单下面的按钮新建一个,保存方法同上。在左侧的工程栏窗口中,右键点击工程名test,选择Add Files。将刚保存的main.c文件添加进工程。在左侧的工程中可以看到目录结构:至此,我们就建立好了一个新的工程,我们在这里添加简单的代码测试。如下:#include //AVR头文件#include //内部函数头文件//PB口接8个LED,PB口为低时LED亮,高时灭,//本程序实现8个LED以1HZ的频率闪烁int main(void){PORTB = 0xff;//初始化PB口DDRB = 0xff;//设置PB口为输出while(1){PORTB = 0xff;_delay_ms(500);//延时500毫秒PORTB = 0x00;_delay_ms(500);//延时500毫秒}}点击保存。这样我们的第一个测试程序就编辑完毕了。有兴趣的朋友可以现在点击Tools->[WinAVR]Make All编译一下试试,看看能不能编译通过?答案是:不能通过!!提示:>"make.exe" allmake.exe: *** No rule to make target `all.Stop.>Process Exit Code: 2>Time Taken: 00:00原因是MakeFile尚未编写。在GCC进行编译的时候找不到Makefile文件就会出错。下面Makefile文件的配置方法.3、配置Makefile文件开始->程序->WinAVR-20090313->MFile[WinAVR],打开Makefile的配置窗口。点击Makefile菜单,常用的选项有:Main file name…MCU type其他的可以先保持默认。先点击Makefile->Main file name…在弹出的对话框中输入刚才我们建立的c文件的文件名,不包括“.c”!!!只输入main即可。(必须跟源文件名一致!!!!!)然后,Makefile->MCU type,选择MCU的类型,我们使用的是atmega16。然后点击File->Save As,在弹出的对话框中选择保存到我们上一节建立的工程目录下(或者先保存到别的地方然后拷贝过去)!!!双击得到的Makefile文件(不要改文件名!!!!),在打开方式中选择,记事本。确定。将F_CPU = 8000000,改成你需要的晶振频率,我的板子是7.3728MHZ,那么就改成F_CPU = 7372800,保存退出。这样,Makefile基本的配置就完成了,然后回到WinAVR的界面中,点击Tools->[WinAVR]Make All编译,在下面的Output窗口中提示:>"make.exe" all-------- begin --------avr-gcc (WinAVR 20090313) 4.3.2Copyright (C) 2008 Free Software Foundation, Inc.This is free software; see the source for copying conditions.There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.Compiling C: main.cavr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst-std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.oLinking: main.elfavr-gcc -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o-std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref-lmCreating load file for Flash: main.hexavr-objcopy -O ihex -R .eeprom -R .fuse -R .lock main.elf main.hexCreating load file for EEPROM: main.eepavr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \--change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf main.eep || exit 0Creating Extended Listing: main.lssavr-objdump -h -S -z main.elf >main.lssCreating Symbol Table: main.symavr-nm -n main.elf >main.symSize after:AVR Memory Usage----------------Device: atmega16Program:158 bytes (1.0% Full)(.text + .data + .bootloader)Data:0 bytes (0.0% Full)(.data + .bss + .noinit)-------- end -------->Process Exit Code: 0>Time Taken: 00:07编译通过!!!在工程目录中可以看到编程之后生成的HEX文件。到这里AVR GCC基本使用大致就可以掌握了,其他的一些功能比如和AVR Studio配合使用等在熟悉了之后慢慢就可以摸索了,我们后面也考虑出相应教程,欢迎大家到时候关注http://bbs.cepark.com/index.php,我们会第一时间把教程发布在论坛提供给大家下载。这里只给大家简单的介绍了AVR GCC的使用,尽量以图形的方式方便大家的学习,后面紧跟的将是下载软件的使用,我们推荐双龙的下载软件。

标签: AVR单片机WinAV

相关阅读