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

2020-02-19 21:11发布

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

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

    FTFL_FCCOB0 = 0x09; //擦除扇区
   
    // 设置目标地址
    FTFL_FCCOB1 = dest.byte[2];
    FTFL_FCCOB2 = dest.byte[1];
    FTFL_FCCOB3 = dest.byte[0];
   
    // 执行命令序列
    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;  //成功返回
}
在网上搜到的例程,红 {MOD}部分的代码不是很懂,不知道写入这个序列到底什么意义,查了下手册,也没找到相关的说明,希望知道的可以帮忙解惑一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Henjay724
1楼-- · 2020-02-19 21:18
楼上正解,关于K60FTFL指令章节可以参考K60 Reference Mannual 28.4.10小节,里面详细介绍了K60 FTFL command operation
FSL_FAE_JiCheng
2楼-- · 2020-02-19 22:09
Henjay724 发表于 2013-12-12 12:46
FTFx是freescale的flash controller,不同系列的Kinetis MCU,其controller也不同,比如KL03、KL25系列用的 ...

太谢谢您了,我仅仅根据手册知道了该怎么往里面写数据,但是不知道在这个地址写入这个数据是什么意思,经您讲解之后明白了,谢谢!
w282529350
3楼-- · 2020-02-20 02:43
FSL_FAE_JiCheng 发表于 2013-12-12 12:58
楼上正解,关于K60FTFL指令章节可以参考K60 Reference Mannual 28.4.10小节,里面详细介绍了K60 FTFL comma ...

感谢版主的热心回复~~
w282529350
4楼-- · 2020-02-20 04:51
看手册 寄存器上的

一周热门 更多>