|
楼主 |
发表于 2007-8-12 16:40:52
|
显示全部楼层
我上课用CVAVR,开发一般的东西也用CVAVR。
研究生做网络的东西和USB的东西用ICC,它与标准C更兼容些。
上面2个都有正版的,电脑里长年装的CVAVR、ICCAVR、BASCOM-AVR、KEIL、AVR STUDIO。
IAR我手有4K的版的,主要是帮ATMEL公司培训用,他们官方推荐的是IAR + make_II + STK500。这些东西我都有,但开发产品从来不用,培训完了就卸载掉,资料也是他们送的。
偶尔用一下STK500,主要是解救新片(并行或串行高压)。IAR使用起来比较繁,尽管代码效率高,但很多功能不如ICCAVR、CVAVR方便。IAR是一套大的环境,采用与IAR ARM等相同的技术。我平时设计的产品不是大型产品,所以不太用IAR。
平常用AVR-51多,家里就有2块。有什么新的芯片就在上面插几根线,打通了就完事,系统程序直接上目标版。现在用的多的是串行接口,方便多了。
每个系统都有优点可不足,首先是选合适的用。然后是交替使用,如写初始化代码,用ICC和CVAVR各生成一个,对比一下。定时器部分的用ICC生成就方便,但有点小错。而使用I2C、单总线器件、DS1320等,使用CVAVR方便多了。都有内部函数。国内有人为ICC增加了一些函数,我还有点不敢用。IAR少多了,基本上需要自己写。它有功能代码生成器,生成的代码结构非常完整,估计不是专业程序人员还看不懂的,适合纯软件人员使用。硬件出身的恐怕要头疼的。
注意CVAVR的几个优点:
1。可直接位操作,如:PORTB.3 = 1
2。可直接操作内部EEPROM。
EEPROM CHAR DATA;
DATA = 0XFF;
3。大量专用函数,尤其是针对常用芯片的函数。比如你用DS1302,根本不用写底层的东西。
4。初始化代码生成器。USART的特别好。(定时器不如ICC方便,可借ICC的参考)。
5。直接支持STK200、STK300下载线。
6。编辑器使用也可以,关键字颜色不同,带折叠方式,反正比ICC的编辑器好。(不过我使用Insight,在Insight编写,在CVAVR中编译下载,两个都开者,基本不打架)
就是与标准C兼容差一点。
我并不反对使用IAR、ICC、GCC等,这些环境我也都会用。
多掌握几个开发环境没有坏处,而且发展到一定水平时,你会发现它们各自的优点和缺点。如果差的太多,那这个环境就不可能生存了。
要根据自己的实际情况,和所从事项目的来决定使用那个环境。我推荐CVAVR主要是针对初学者的,因为CVAVR比较简单和方便使用,与硬件结合的比较好(当然,标准性就差了,向其它的C移植不方便),而且对于一般的系统开发也绝对没有问题。
我在这里的目的主要是推广AVR的使用,如果真的到了老手的水平,转用任何的C应该问题不大。
实际上我本意上在教学和教材中想使用GCC的,因为这是免费的。但学生的C水平问题实在汗颜,如果用GCC,我上课不是上AVR了,变成上C语言程序设计了。
|
|