原创 AVR开发环境

2011-2-25 13:41 3059 9 9 分类: MCU/ 嵌入式
小弟写这篇日志只是发表我个人对于AVR学习的一些看法,完全是个人学习笔记,让同学们参考参考,好让我走的弯路不要让同学们接着走下去,并无刷人气之嫌疑。

     学习完了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条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /2 下一条