本帖最后由 3010203109 于 2013-3-31 18:38 编辑 WIN7下IAR破解安装 对于学习AVR单片机的人来说,IAR是必不可少的开发软件。IAR以编译效率高著称,相比AVR STUDIO 6.0,它有小巧的体型,这点对于电脑配置不是很高的童鞋来说是很有利的,用过之后就有感受了。废话少说,下面介绍破解过程。 找到CD-EWAVR-5511文件夹下的autorun.exe,运行,选择第二项,遇到要输License的地方,先停下,看下面的操作: 进入cmd窗口(开始>运行>输入“cmd”>ENTER) 1、输入破解文件(CD-EWAVR_keygen)所在的盘符,如D盘,就在cmd窗口输入“d:”(不含引号),按下 ENTER 2、获取ID,找到IARID.EXE所在路径,如F:\IAR for AVR 5.51\CD-EWAVR_keygen\IARID.EXE,就输入“cd IAR for AVR 5.51\CD-EWAVR_keygen”,按下ENTER,再输入“IARID”,按下 ENTER,此时应生成ID号,如 0x274F5 3、生成license,输入“IARKG 0x274F5>License.txt”,0x274F5为之前生成的ID,按下ENTER,此时破解 文件夹下出现License.txt 4、打开License.txt,找到“EWAVR”所对应的Installserial和Key,在安装过程中提示输入时输入,破解完 成 我用的是WIN7 32位旗舰版系统,亲测成功,祝各位好运! 文件太大,需要安装包及破解文件的请留邮箱。 IAR使用总结 1、IAR与Dragon连不上 先看驱动,插上DRAGON,打开设备管理器,如果其中有AVR DRAGON,说明已经有驱动了,如果没有,右键“更新驱动程序软件”,选择“浏览计算机以查找驱动程序软件”,选择IAR安装目录下的drivers\dragon,如C:\Program Files\IAR Systems\Embedded Workbench 5.4\avr\drivers\dragon,确定,安装。 装好驱动后,还要设置一下IAR。鼠标右击一个工程,选择OPTIONS,在General Options中选择单片机类型,OK。接下来是重点。 进入Debugger,在Drivers中有许多仿真器可选,注意不要选Dragon,选择JTAGICE mkII,OK。进入JTAGICE mkII>Extra Options,把钩选上,在下面的框中输入“--drv_dragon”(不含引号),OK。 接下来在菜单栏Dragon中选中Fuse Handler,如果能读出熔丝位,恭喜,你的Dragon已经和IAR连上了。 2、如何延时 传统的延时函数 void delay(long t) {while(t--);} 在IAR中会被优化掉而无法实现延时,但是IAR为我们提供了另一种延时方法 延时头文件<delay.h>定义如下: #ifndef __IAR_DELAY_H #define __IAR_DELAY_H #include <intrinsics.h> #define F_CPU 11.059200//晶振频率,单位:MHZ。此语句最好定义在c文件开头 #define delay_us(x) __delay_cycles ((unsigned long)(x * F_CPU)) #define delay_ms(x) __delay_cycles ((unsigned long)(x * F_CPU*1000UL)) #define delay_s(x) __delay_cycles ((unsigned long)(x * F_CPU*1000000UL)) #endif 把delay.h文件放入工程文件夹下,c文件开头声明#include"delay.h" 接下来就可以在C文件中直接使用us,ms,s级的延时了。如,延时100ms,就写“delay_ms(100);”,OK。 用这种方式延时应该是相当精确的,我曾用这个延时函数模拟UART通信,成功地实现了通信。 3、如何按位操作 从51转到AVR的人很快会遇到一个烦恼,AVR似乎不能进行位操作了!不用急,来看IAR怎么进行位操作。 对PA0的位操作可以这样写: PORTA_Bit0=1; PORTA_Bit0=~PORTA_Bit0 ; 也可以先#define PA0 PORTA_Bit0,就可以写成: PA0=1; PA0=~PA0; 4、如何生成Hex文件 打开工程,进入Options,选择linker,在水平菜单中找到Extra Options ,勾选Use command line options,然后再下面输入“-Ointel-extended,(CODE)=.hex”(不包括引号)。以后编译(准确说是make)后就会在工程文件夹下>Debug>Exe中生成Hex文件了 5、包含宏的位定义 看下面程序: uint8_t usart1_getchar(void) { // Wait for incomming data while (!(UCSR1A & (1 << RXC1))); // Return the read data return UDR1; } 编译报错是因为RXC1未定义,进入Options>General Options>System,勾选Enable bit definitions in I/O-Include files就行了 6、IAR仿真运行不稳定 根据我使用IAR的经验,发现IAR仿真运行时容易出问题,有时甚至烧片子。大家有知道原因的请指教。我的解决办法是不用仿真,直接ISP下载程序。由于IAR不支持ISP,我是用AVR Studio来下载的。 7、优化问题 编译器会将它认为没有意义的变量忽略掉,如果有些变量不想被优化,可在变量前加volatile 如:volatile char temp=0; |
|