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;//成功返回
}
在网上搜到的例程,红色部分的代码不是很懂,不知道写入这个序列到底什么意义,查了下手册,也没找到相关的说明,希望知道的可以帮忙解惑一下 楼上正解,关于K60FTFL指令章节可以参考K60 Reference Mannual 28.4.10小节,里面详细介绍了K60 FTFL command operation Henjay724 发表于 2013-12-12 12:46
FTFx是freescale的flash controller,不同系列的Kinetis MCU,其controller也不同,比如KL03、KL25系列用的 ...
太谢谢您了,我仅仅根据手册知道了该怎么往里面写数据,但是不知道在这个地址写入这个数据是什么意思,经您讲解之后明白了,谢谢! FSL_FAE_JiCheng 发表于 2013-12-12 12:58
楼上正解,关于K60FTFL指令章节可以参考K60 Reference Mannual 28.4.10小节,里面详细介绍了K60 FTFL comma ...
感谢版主的热心回复~~ 看手册 寄存器上的
页:
[1]