打印
[Kinetis]

模拟EEPROM出现的问题

[复制链接]
1205|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
adamdo001|  楼主 | 2015-6-18 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 adamdo001 于 2015-6-18 10:51 编辑

学习官方例程flexmem_demo,使用K20DX256VLL7处理器过程中,用IAR开发程序,遇到问题。

__ramfunc INT32U FlexEE_partition_flash(INT32U eeprom_size, INT32U dflash_size)
{
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)
      {
           return PARTED_FAIL;
      }

      /* 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;

      /* FFCOB5 is written with the code for the Dflash size (dflash_size define) */
      FTFL_FCCOB5 = dflash_size;


      /* All required FCCOBx registers are written, so launch the command */
      FTFL_FSTAT = FTFL_FSTAT_CCIF_MASK;

      /* Wait for the command to complete */
      while(!(FTFL_FSTAT & FTFL_FSTAT_CCIF_MASK));
      return 1;
}

在上面的程序里,上电复位后,经常停在标红的那一行。
在IAR里看到程序一直等待在 while(!(FTFL_FSTAT & FTFL_FSTAT_CCIF_MASK));
在IAR用Jlink调试,单步运行,走过这一行,再向下就正常了。

FlexEE_partition_flash这个函数是不是要放在RAM里运行?

多次遇到上面的这个情况。到底是什么原因?怎样解决?

相关帖子

沙发
C洛达尔多| | 2015-6-18 11:03 | 只看该作者
不知道时序对不对呢

使用特权

评论回复
板凳
luofeng2g| | 2015-6-18 11:49 | 只看该作者
应该要放在ram里面运行

使用特权

评论回复
地板
643757107| | 2015-6-18 13:34 | 只看该作者
FTFL_FSTAT & FTFL_FSTAT_CCIF_MAS
这两个肯定有一个全为0 了,看看是咋回事。

使用特权

评论回复
5
FSL_TICS_ZJJ| | 2015-6-18 14:26 | 只看该作者
关于你这个问题,我已经在另外一个坛子回复你了。
请参考如下代码:
hello_world.rar (1.29 KB)

使用特权

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

本版积分规则

12

主题

91

帖子

0

粉丝