三度网教程:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

WinAVR-单片机编译软件-WinAVR下载 v20100110官方版

时间:2024/5/22作者:未知来源:三度网教程人气:

编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

WinAVR是一款的AVR单片机编译软件,WinAVR的目标代码效率极高。具有编译速度快、编译准确性高的特点,支持多种数据类型。代码可读性和可移植性高。winavr还有一个很严重的缺陷就是不支持float数据类型,原因是GCC在所有环境中都把float直接定义为double。这样,对8bit环境来说,就显得负担过重了。

功能特点

  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 中,中断处理程序叫做“信号”,不叫函数),并且,在中断处理过程中,最好不要开放中断,否则会引起数据错误并非不可以,但需要一些技巧)。


使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。




下载地址

  • PC版

关键词:  WinAVR  编程开发





Copyright © 2012-2018 三度网教程(http://www.3du8.cn) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版