软件 | winavr(GCC) 20100110 官方安装版 |
内容 |
WinAVR是作为GCC编译器使用的一套开源的开发工具的总称,著名的开源编译器GUN C Compiler的AVR平台移植版。用来在Windows平台开发Atmel AVR系列RISC微控制器,该编译器的编译效率极高。GCC的编译器优化程度可以说是目前世界上民用软件中做的最好的,完全用ANSI(美国国家标准学会)规范写出的超过一万行代码的程序。还没有任何一种编译器产生的目标代码能比GCC产生的代码速度更快,同时它的bug数量却也可以算作所有民用C编译器中最少的。 WinAVR的工具包括: 1.avr-gcc:基于命令行的编译器。 2.avr-libc:编译器avr-gcc的库。 3.avr-as: 汇编器。 4.avrdude:编程接口。 5.avr-gdb:调试器。 6.programmers notepad:代码编辑器。 WinAVR 的配置与 makefile使用教程: WinAVR 的配置与 makefile 一直是新手入门的两个难点。我们经过详细的测试,推荐大家不需要作任何的配置, 并且介绍了如何用最简单的方法创建自己的 makefile 文件。利用本文,十来分钟你就能入门 WinAVR /GCC. 首先: 安装光盘中的:avr应用/avr开发工具/WinAVR-20050214.exe软件安装好后,你就能在电脑上看到如下的功能菜单: 说明如下: 名称说明ProgrammersNotepadGCC语言编辑器。可提供应用程序接口。MfileGCC需要一个叫makefile 的参数文件才能进行编译。Mfile是一个工具,可以让用户方便地修改 makefile上的参数。不过我们不推荐使用它。我们推荐直接用记事本打开makefile 进行编辑。AVRInsight 仿真调试工具TkInfoGNU的超文本浏览器UninstallWinAVR 卸载 WinAVR 软件WinAVRUser ManualWinAVR用户手册GNUMaunals OnlineGNU的在线帮助AVR-libcManualAVRGCC的C语言函数库帮助手册 步骤一:打开 PN 工具 步骤二: 在硬盘建立一个专门存放avr文件的目录, 例如, 我们在D:\盘新建一个AVR的目录,注意!不要用中文目录!也不要存在其他的有中文目录的路径。 在PN工具的编辑窗口中输入下面的一个简单的跑马灯程序: 在PN工具的编辑窗口中输入下面的一个简单的跑马灯程序:#include "avr/io.h"static void io_init(void) { PORTA =0xff; DDRA =0xff; } void mDelay(uint16_t DelayTim) {uint16_t i; for(;DelayTim>0;DelayTim--) {for(i=0;i<4000;i++) {;} for(i=0;i<3900;i++) {;} } }
int main(void){ uint8_t i=0; io_init(); while(1) {if(++i>=8) i=0; PORTA=~(0x01<<i); //改为0x80>>i可改变流水灯方向mDelay(500);} } 然后:菜单 File -->save as..把它保存在刚刚建立的d:\avr目录下,命名为led.c 回到前面点程序菜单的winavr的mfile出现前面的界面 点击主菜单Makefile->Main file name…即出现如图2所示的对话框,通常不需要更改此选项,最终产生的hex文件即main.hex。 接着点击Makefile->Mcu type,设定所用单片机的型号,如图3所示我们选择ATmega8515为我们所用的型号。 点击:Make-->Debug Format:可选择输出的调试文件格式,应选择最后一项:ELF/DRARF-2(AVR Studio ELF,GDB[experimental] ),这样可以由产生供AVR studio 4以上版本调试用的ELF格式的文件。 点击:Make-->C/C++ Source Files……出现选择文件名的对话框,如图4所示,请用“Choose file…”钮选择你所要编译的文件,注意,一定要将Include main.c前面的勾去掉,除非你的确有一个名为main.c的文件。 图4 选择主文件 其他的项一般可以不必改动。
更改后用File-->Save as…将该makefile文件保存至刚才所建文件夹d:\avr中。 编译 (Make All): 回到Programmer Notepads中,点击:Tools->Make All,即可对该文件进行编译、链接等处理,有关信息在output窗口中呈现。如有错误,单击错误行,即可定位,以便对此进行修改,直到编译、链接完全正确为止。此时,output窗口显示:> Process Exit Code: 0 (否则程序有问题请检查) 烧写程序/演示 连接好XL2000或者xl600单片机实验仪,,锁紧座上放入一片ATmega8515L或Atmega8515,开启电源, 运行XLISP软件, XLISP软件中选择相应的芯片型号,器件配置选项中按 图6 设置 按照上图选择:单片机工作在内部时钟8MHZ 注意:熔丝位配置错误将会锁死芯片导致再编程失败。
加载编译的文件main.hex 烧写程序,正常即可观查到流水灯效果! 特别注意!由于51单片机和AVR单片机的复位信号相反,而XL600/XL2000主要设计为51单片机使用,为此,如果按XL600/XL2000的复位键后,则停止运行,按下不动,才重新运行。初学者请注意!另外由于软件设计的原因可能要点两次智能一键通,才能正常的下载。 WinAVR优点 1.目标代码效率极高;(同样功能的程序,经由GCC 编译后的目标代码,通常比CVAVR的代码短20%-50%,且运行速度更快) 2.GCC的代码可读性和可移植性最高;(为全球最大的自由软件开发组织的首选开发工具,GCC是C语言事实上的工业标准,所以用GCC编制的程序,几乎完全不必考虑移植性问题) 3.WinAVR是公开源代码的自由软件于有大量的高手参与它的开发,所以无论是GCC本身,还是与GCC 配套的AVR 编译包,其更新速度和效率都是其它开发工具(accavr,avr studio)所远不能比拟的; 常见问题 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 语言编程? 答案是肯定的!首先,需要在 makefile 的项目中,把MCU=后面的内容改成avr2其次,需要在程序所在的 c 文件中,把#include 改成#include ,#include如此,即可以直接将编译后的代码用于该两类MCU上,不过,还需要注意的是,由于该两类 MCU 没有软件堆栈和 RAM,所以,程序中*禁止*使用全局变量、局部静态变量以及中断处理以外的函数(其实在 GCC 中,中断处理程序叫做“信号”,不叫函数),并且,在中断处理过程中,最好不要开放中断,否则会引起数据错误并非不可以,但需要一些技巧)。 |
标签 | winavr,gcc |
缩略图 | ![]() |
软件名称 | winavr(GCC) 20100110 官方安装版 |
软件图标 | |
软件大小 | 28MB |
发布时间 | |
软件平台 | |
软件语言 | 简体中文 |
软件授权 | 免费软件 |
操作系统 | Windows平台 |
系统类型 | |
用户评分 | 3 |
软件版本 | |
官方网站 | |
官方网址 | |
软件截图 | |
软件总类 | 电脑游戏 |
软件大类 | 软件下载-应用软件-编程开发-编程工具-winavr中文版下载 |
软件小类 | 编程工具 |
开发者 | |
主办单位名称 | |
ICP备案名 | |
备案号 | |
使用年龄 | |
下载链接 | ![]() |
攻略教程 | |
详细介绍 | |
操控设备 | |
隐私政策 | |
查看权限 | |
敏感权限获取说明 | |
软件类型 | 国产软件 |
安全警示 | 适度休息有益身心健康,请勿长期沉迷于使用电脑或刷手机。 |
随便看 |
|
传承兰台文化,共同保存历史记忆!兰台网收藏软件、游戏、图片、图书、电影、电视剧等互联网档案,是免费和可借阅文本、电影、音乐等档案的数字图书馆。