打印
[Kinetis]

K10 的EEPROM 无法读写 不知道有解决过 这方面问题的吗

[复制链接]
1161|7
手机看帖
扫描二维码
随时随地手机跟帖
沙发
cuiyul|  楼主 | 2015-12-17 20:17 | 只看该作者
void flexint (void)
{
           SCB->SHCSR|=SCB_SHCSR_BUSFAULTENA_Msk|SCB_SHCSR_MEMFAULTENA_Msk|SCB_SHCSR_USGFAULTENA_Msk;
           if ( partition_flash( EEPROM_1K_1K, 0X03))
        {
            /* Device has been partitioned for the first time, so this
             * means the counters have not been initialized yet. We'll
             * zero them out now.
             */
          *((uint32_t *)(LONGWORD_COUNTER_ADDR)) = 0x1;
            while(!(FTFL->FCNFG & FTFL_FCNFG_EEERDY_MASK));
        }
                                else
                                {
                                        printf("\nlongword counter = 0x%08X", *(uint32_t *)(LONGWORD_COUNTER_ADDR));
                               
                                }
                    
}

使用特权

评论回复
板凳
cuiyul|  楼主 | 2015-12-17 20:18 | 只看该作者

int partition_flash(int eeprom_size, int dflash_size)
{
//                                unsigned char rrr;
      /* Test to make sure the device is not already partitioned. If it
       * is already partitioned, then return with no action performed.
       */
      if ((SIM->FCFG1 & SIM_FCFG1_DEPART(0xF))!= 0x00000F00)
      {
          printf("\nDevice is already partitioned.\n");
          return 0;
      }
                             /* Write the FCCOB registers */
      FTFL->FCCOB0 = FTFL_FCCOB0_CCOBn(0x80); // Selects the PGMPART command
      FTFL->FCCOB1 = 0x00;
     FTFL->FCCOB2 = 0x00;
      FTFL->FCCOB3 = 0x00;

      /* FCCOB4 is written with the code for the subsystem sizes (eeprom_size define) */
      FTFL->FCCOB4 =eeprom_size;// eeprom_size;

      /* FFCOB5 is written with the code for the Dflash size (dflash_size define) */
       FTFL->FCCOB5 = dflash_size;//dflash_size;


      /* All required FCCOBx registers are written, so launch the command */
       ftfl_flex.FSTAT = FTFL_FSTAT_CCIF_MASK;
      while(!(FTFL->FSTAT & FTFL_FSTAT_CCIF_MASK));
                       
//      FTFL->FCCOB0 = FTFL_FCCOB0_CCOBn(0x81); // Selects the PGMPART command,0X80±à3ìeeprom?üá?
//      FTFL->FCCOB1 = 0x00;
//      FTFL->FSTAT = FTFL_FSTAT_CCIF_MASK;//??CCIF±ê????D'1-?'??3yCCIF±ê??????'ó?????ˉ?üá?
//      /* Wait for the command to complete */
//      while(!(FTFL->FSTAT & FTFL_FSTAT_CCIF_MASK));//FTFE_FSTATμ?CCIF???ú?üá??'DD?ú??ê???±?3??a0???±μ??üá??'DDíê3é2?±??a1??μè'y?üá?'?ê?íê3é
       return 1;
}

使用特权

评论回复
地板
李香兰| | 2015-12-17 20:32 | 只看该作者
I2C有没有调通,I2C里面有等待寄存器的时候

使用特权

评论回复
5
cuiyul|  楼主 | 2015-12-18 09:20 | 只看该作者
是内部的flexnvm   模拟出的eeprom    不是外部的

使用特权

评论回复
6
cuiyul|  楼主 | 2015-12-18 09:22 | 只看该作者
李香兰 发表于 2015-12-17 20:32
I2C有没有调通,I2C里面有等待寄存器的时候

是内部的flexnvm   模拟出的eeprom    不是外部的

使用特权

评论回复
7
NXP_TICS_Jeremy| | 2015-12-18 09:39 | 只看该作者
你的K10具体型号是多少?

使用特权

评论回复
8
cuiyul|  楼主 | 2015-12-18 11:59 | 只看该作者
NXP_TICS_Jeremy 发表于 2015-12-18 09:39
你的K10具体型号是多少?

k10dx256vlq10

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

20

帖子

2

粉丝