jicheng0622

【原创】手把手教你安装破解IAR For ARM 6.3

0
阅读(37972) 评论(41)

    又是好久没有更新博客了,呵呵,前一段时间较忙再加上感冒困扰没顾得上更新(现在仍在感冒中,哎,济南这几天气温变化,搞的好多人都感冒了,我就是沦陷中的一人了),今天就补上一篇(咳咳,越来越像写小说了,哈哈,补更),所以咱的“小说体”技术博客道路需要继续走下去,不要错过啊,觉着可以的话希望能顶一个,呵呵~

    最近发现好多人都在用IAR环境开发Kinetis,我得意儿的笑了一个(嘿嘿,因为我也在用,骄傲啊),前段时间摸索了下CodeWarrior10.2,最初觉着眼前一亮,Eclipse的开发环境就是挺好的,代码编辑和调试界面等等都做的挺人性化的,我都有点倾向于转向CW了,不过慢慢的觉着用起来不是很习惯了,界面过于绚丽造成了操作的复杂性,同时又带来了对开发平台的高配置要求(我电脑用起来真有点卡,呵呵),当然最后改变我主意的还是最让广大飞丝们遗憾的一个缺点,我没记错的话貌似从CodeWarrior5.x之后,飞思卡尔裁掉了在线跟踪功能(Live watch,这个功能当初曾让我觉着Codewarrior无可匹敌),所以我还是坚持了简单,高效率的IAR开发环境(注意哦,IAR支持Live watch),谁说“简单”不好,我觉着挺好,在生活中也是这个道理,呵呵~

    当然以上都是个人意见了,嘿嘿,其实选择哪种IDE纯是个人喜好问题,对于开发Kinetis来说,都只是工具而已。至于写这篇内容的目的,是因为最近有几个网友留言问我IAR的下载安装问题,让我意识到以前貌似步子迈大了,呵呵,没有注意到最初始的安装问题,毕竟我的目的就是主要面向初手级的开发者的,而这个群体好多人都可能是第一次接触IAR这类软件,所以觉着还是回过头来补上一篇关于IAR最新版的IAR6.3的安装和破解问题,希望不算晚。

1.首先是软件下载的问题,建议到官方直接去下载,http://www.iar.com/en/Service-Center/Downloads/ 点击该链接进入到IAR Embeded Workbench空间,选择如下图所示,注意要选择Time-Limited License因为我下面提供的破解文件可能只支持该版本

 

按照上面步骤注册完毕之后,就会出现软件链接和一个注册码,其中注册码为30天有效期,可以记下来,不过如果破解的话就用不到这个了,呵呵

2.下载的问题解决了,下面就是安装问题了,具体步骤还是上图吧,我就不罗嗦了,嘿嘿:

然后一路默认下去,呵呵,就要到本篇的重点了

打开附件的和谐文件,双击后如下

IAR安装文件填写如下

    这样IAR 6.3就可以正常使用了,写的过于详细了怕一些没用过的初手看不懂,老手们直接略过就行,呵呵。

    这里得声明一下,破解文件全当做平时学习测试用,如果是公司的开发工程师的话还是建议去买正版的序列号,毕竟涉及到知识产权的问题,呵呵,这里俺们都是学习用就暂且和谐一下吧。

    附件为IAR6.3和谐文件。

  1. ***此内容已被管理员屏蔽***

  2. 哈哈哈哈哈哈哈哈哈哈哈

  3. ***此内容已被管理员屏蔽***

  4.  附件IAR6.3和谐文件在哪呢?

  5. 匿名用户匿名用户
    多谢啊
  6. @chenhai
    IAR7.1的话,我目前还没有搞破解。
  7. 求iar的最新版本7.10如何破解
  8. @andrew_lya
    6.5的License管理方式与之前都不一样,现在没有成熟的破解方式~
  9. 6.5的有没有

     

  10. @织梦音
    6.5破解方式不一样,建议先安装6.3,可以在IAR官网找到6.3的链接,需要仔细找,呵呵~
  11. 亲,怎么没有6.3啊,有6.5.安装也不一样啊。。。
  12. 回复:回复

    感谢!!!  但是我有点奇怪,你为什么对飞思卡尔的芯片这么了解?是开发必须的吗?

    呵呵,我接触飞思卡尔3年多了,所以对它的一些片子有些了解,单纯开发的话没必要这么细致,直接上手就行~

  13. 感谢!!!  但是我有点奇怪,你为什么对飞思卡尔的芯片这么了解?是开发必须的吗?

  14. 我是用24C16 EERPOM

    /*
     * File:        k60_i2c.c
     * Purpose:     Code for initializing and using I2C
     *
     * Notes:
     *
     */

    #include "common.h"
    #include "k60_i2c.h"


    unsigned char MasterTransmission;
    unsigned char SlaveID;

    /*******************************************************************/
    /*!
     * I2C Initialization
     * Set Baud Rate and turn on I2C0
     */
    void init_I2C(void)
    {
        SIM_SCGC4 |= SIM_SCGC4_I2C1_MASK; //Turn on clock to I2C0 module

        /* configure GPIO for I2C0 function */
        PORTC_PCR10 = PORT_PCR_MUX(2);
        PORTC_PCR11 = PORT_PCR_MUX(2);

        I2C1_F  = 0x14;       /* set MULT and ICR */

        I2C1_C1 = I2C_C1_IICEN_MASK;       /* enable IIC :Enables I2C interrupt requests.*/
    }

    /*******************************************************************/
    /*!
     * Start I2C Transmision
     * @param SlaveID is the 7 bit Slave Address
     * @param Mode sets Read or Write Mode
     */
    void IIC_StartTransmission (unsigned char SlaveID, unsigned char Mode)
    {
      if(Mode == MWSR)
      {
        /* set transmission mode write*/
        MasterTransmission = MWSR;
      }
      else
      {
        /* set transmission mode read*/
        MasterTransmission = MRSW;
      }

      /* shift ID in right possition */
      SlaveID = (unsigned char) MMA7660_I2C_ADDRESS << 1;

      /* Set R/W bit at end of Slave Address */
      SlaveID |= (unsigned char)MasterTransmission;

      /* send start signal */
      i2c_Start();

      /* send ID with W/R bit */
      i2c_write_byte(SlaveID);
    }

    /*******************************************************************/
    /*!
     * Pause Routine
     */
    void Pause(void){
        int n;
        for(n=1;n<50;n++) {
          asm("nop");
        }
    }

    /*******************************************************************/
    /*!
     * Read a register from the MPR084
     * @param u8RegisterAddress is Register Address
     * @return Data stored in Register
     */
    //unsigned char u8MMA7660ReadRegister(unsigned char u8RegisterAddress)
    unsigned char rd_i2c_rom(unsigned char u8RegisterAddress)
    {
      unsigned char result;
      unsigned int j;

      /* Send Slave Address */
      IIC_StartTransmission(SlaveID,MWSR);
      i2c_Wait();

      /* Write Register Address */
      I2C1_D = u8RegisterAddress;
      i2c_Wait();

      /* Do a repeated start */
      I2C1_C1 |= I2C_C1_RSTA_MASK;

      /* Send Slave Address */
      I2C1_D = (MMA7660_I2C_ADDRESS << 1) | 0x01; //read address
      i2c_Wait();

      /* Put in Rx Mode */
      I2C1_C1 &= (~I2C_C1_TX_MASK);

      /* Turn off ACK */
      I2C1_C1 |= I2C_C1_TXAK_MASK;

      /* Dummy read */
      result = I2C1_D ;
      for (j=0; j<5000; j++){};
      i2c_Wait();

      /* Send stop */
      i2c_Stop();
      result = I2C1_D;
      Pause();
      //I2C_S_RXAK_MASK&=I2C1_S
      //if(I2C_S_RXAK_MASK==0x1u)
        
      return result;
    }

    /*******************************************************************/
    /*!
     * Write a byte of Data to specified register on MPR084
     * @param u8RegisterAddress is Register Address
     * @param u8Data is Data to write
     */
    //void MMA7660WriteRegister(unsigned char u8RegisterAddress, unsigned char u8Data)
    void wr_i2c_rom(unsigned char u8RegisterAddress, unsigned char u8Data)
    {
      /* send data to slave */
      int i;
      IIC_StartTransmission(SlaveID,MWSR);
      i2c_Wait();

      I2C1_D = u8RegisterAddress;
      i2c_Wait();

      I2C1_D = u8Data;
      i2c_Wait();

      i2c_Stop();

      Pause();
     
     for(i=0;i<100000;i++)
     {
                asm("nop");
     }          
    }

  15. 回复:回复

    我有寫出來了.....要分享給你嗎.........

    呵呵,恭喜呀,可能的话可以写篇博客或者发个帖子给大家分享出来,交流才能进步啊,哈哈~