学习完了51,接下来就是AVR的128了。刚上手的AVR128真的是很不习惯,主要有一下几点:
第一:首先是开发环境的选择和设置真的是令人头疼;
第二:再就是开发板的选择和下载器的选择;
第三:关于AVR熔丝位的操作。
这次主要讨论关于AVR开发环境的选择和设置:(后面几点以后再总结)
对AVR有一定了解的人肯定知道ICC AVR,GCC AVR,AVR STUDIO,IAR AVR和WINAVR等等...老实说,刚开始学AVR的时候听见这些头真的有些懵了,在网上找资料说的也不是很全面,不是说的很清楚,通过学习和摸索,我也算是明白了。现在我总结一下这些开发环境的特点以及怎么样来选择开发环境:
GCC是Linux的唯一开发语言。就嵌入系统应用来说,几乎所有市面上有一定市场份额的8bit以上MCU都有爱好者移植GCC在其上。
GCC的编译器优化程度可以说是目前世界上民用软件中做的最好的,完全用ANSIC规范写出的超过一万行代码的程序,目前还没有任何一种编译器产生的目标代码能比GCC产生的代码速度更快,但是同时它的bug数量却也可以算作所有民用C编译器中最少的。
就8bit开发而言,GCC还有一个很严重的缺陷就是,不支持float数据类型,实际上GCC在所有环境中都把float直接定义为double,这样,对8bit环境来说,就显得负担过重了。
GCC被移植到WINDOWS平台上,整合了各个组件后的Windows版GCCAVR就是WinAVR。不是IDE,自己定制IDE的时候就要用到makefile,makefile重要作用就是:指定所用的单片
机类型,指定编译的文件,设定编译优化条件等。studio里面有个设置,你去改一下,自己查找印象会很深。这个软件只会在默认安装目录下自动生成Makefile文件,一般是C盘,
如果你改你的工程存储诸如D盘或者后面的盘符,那么你就自己去生成一个Makefile,拷入你的项目根目录下,这时编译就不会报错了。
自己生成这个文件有个向导工具,从开始点击,winavr直到点到MFile [WinAVR],这时会弹出一个类似记事本的窗口,点makefile选项,下面有很多设置,你只要设置你的mcu,晶振,main文件名,别的几乎不需要改动,保存后拷入你项目的根目录就可以编译了,具体操作不详细说了。如果不想改,怕麻烦,想自动生成这个文件,就把项目存在C盘的我的文档下面吧。
IAR AVR:带有C/C++编译器和调试器的集成开发环境(IDE)(费用蛮高的,不过网上有破解的)。
ATMEL AVR Studio集成开发环境(IDE) ,包括了AVR Assembler编译器、AVR Studio调试功能、AVR Prog串行、并行下载功能和JTAG ICE仿真等功能。
ICCAVR 这个应该是用的最多的AVR单片机集成开发环境了,集成了gnu编译器。
优点:
(1)熟悉的windows开发环境,完全的仿vc界面/工程管理/文件管理也和vc差不多。
(2)集成gnu编译器,在ide中可以很轻松的设置编译条件和参数。
缺点:
主要是它只是一个IDE,并不能软件调试和仿真,需要借助AVR STUDIO实现仿真调试。
那么有同学就会问,ICC AVR和AVR STUDIO到底什么关系呢?
老实说这两个说不上有什么关系,只能说都是avr单片机编译器,由不同的产商开发的。
iccavr是c编译器,当然它还支持.s文件的汇编文件。
avr studio是atmel公司开发的集成开发环境,其中编译器为汇编器。支持调试,片上仿真,下载等功能。
一般都是用c编译器开发程序,然后用avr studio来仿真和下载。
下面我介绍一下开发环境的选择:
AVR的集成开发环境有很多,最常用的有以下几种,结合我对AVR开发环境的使用,简单谈一下各种开发环境的特点,供同学们选择:
AVRstdio+winavr
AVRstdio是ALMEL公司的一个免费集成开发环境,只支持汇编语言。
WINAVR是一个免费开源的,基于GCC的编译器。它可以与AVRstdio无缝集成,只需要在AVR STUDIO中下载GCC AVR的插件就行了,再用Mfile管理编译的信息。
优点:免费,可移植性好,有大量的AVRlib库可以使用;
缺点:编译效率不高,生成的调试信息可能会和实际代码不一致,使得单步调试有时当前所见代码并不是实际执行的代码(本人在开发中遇到过很多次),还有就是在调试的时候看具体的变量,有时候会出现问题,编译器的BUG比较多。
IAR for AVR
是IAR出的针对AVR单片机的高性能集成开发环境
优点:调试功能强大,编译效率高,编译器BUG少;
缺点:商业软件,价格比较高(不过现在破解的很多)。
AVRstdio+ICC
ICC是一个商业的开发环境,但调试时,仍然要结合AVRStdio进行,也可以在AVR STUDIO中下载ICCAVR的插件,我试过,但是新建工程的时候选择的是ICCAVR的话AVR STUDIO就异常的终止了,一直找不到原因。
优点:编译器效率介于前两者之间,有图形化的外设设置工具,能够自动生成启动和外设初始化代码;
缺点:调试的时候要来回的切换,非常的麻烦,编译器有一些BUG(我遇到过几次),导致有些语句不能正常编译,尤其在if嵌套层数过多时。调整一些语句的位置,可以解决些问题(破解版的感觉有点不爽)。
文章评论(0条评论)
登录后参与讨论