w282529350 发表于 2013-12-12 12:03:00

K60 secrot0擦除的问题(已解决)

本帖最后由 FSL_TICS_ZJJ 于 2014-1-27 14:39 编辑

U8 Flash_erase_sector(U16 sectorNo)
{
    union
    {
      U32word;
      U8   byte;
    } dest;
   
    dest.word    = (U32)(sectorNo*(1<<11));

    FTFL_FCCOB0 = 0x09; //擦除扇区
   
    // 设置目标地址
    FTFL_FCCOB1 = dest.byte;
    FTFL_FCCOB2 = dest.byte;
    FTFL_FCCOB3 = dest.byte;
   
    // 执行命令序列
    if(1 == Flash_cmd_launch())    //若执行命令出现错误
      return 1;   //擦除命令错误
   
    // 若擦除sector0时,则解锁设备
    if(dest.word <= 0x800)
    {
      
      FTFL_FCCOB0 = 0x06; // 写入4字节
      // 设置目标地址
      FTFL_FCCOB1 = 0x00;
      FTFL_FCCOB2 = 0x04;
      FTFL_FCCOB3 = 0x0C;
      // 数据
      FTFL_FCCOB4 = 0xFF;
      FTFL_FCCOB5 = 0xFF;
      FTFL_FCCOB6 = 0xFF;
      FTFL_FCCOB7 = 0xFE;
      // 执行命令序列
      if(1 == Flash_cmd_launch())//若执行命令出现错误
            return 2;   //解锁命令错误
    }
   
    return 0;//成功返回
}
在网上搜到的例程,红色部分的代码不是很懂,不知道写入这个序列到底什么意义,查了下手册,也没找到相关的说明,希望知道的可以帮忙解惑一下

Henjay724 发表于 2013-12-12 12:46:40

FSL_FAE_JiCheng 发表于 2013-12-12 12:58:57

楼上正解,关于K60FTFL指令章节可以参考K60 Reference Mannual 28.4.10小节,里面详细介绍了K60 FTFL command operation

w282529350 发表于 2013-12-12 13:27:19

Henjay724 发表于 2013-12-12 12:46
FTFx是freescale的flash controller,不同系列的Kinetis MCU,其controller也不同,比如KL03、KL25系列用的 ...

太谢谢您了,我仅仅根据手册知道了该怎么往里面写数据,但是不知道在这个地址写入这个数据是什么意思,经您讲解之后明白了,谢谢!

w282529350 发表于 2013-12-12 13:27:55

FSL_FAE_JiCheng 发表于 2013-12-12 12:58
楼上正解,关于K60FTFL指令章节可以参考K60 Reference Mannual 28.4.10小节,里面详细介绍了K60 FTFL comma ...

感谢版主的热心回复~~

jinyi7016 发表于 2015-2-25 15:10:43

看手册 寄存器上的
页: [1]
查看完整版本: K60 secrot0擦除的问题(已解决)