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}部分的代码不是很懂,不知道写入这个序列到底什么意义,查了下手册,也没找到相关的说明,希望知道的可以帮忙解惑一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。