打印

MCU flash存储问题--求解释

[复制链接]
1072|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxyfdlh1987|  楼主 | 2014-1-16 09:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jxyfdlh1987 于 2014-1-16 09:17 编辑

//--------------------------------------------------
// Description  : Start for Load Eeprom default
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromStartLoadDefault(void)
{    BYTE i;
    pFlashTemp[0] = 0;
    for(i=1;i<8;i++)        

     pFlashTemp = 0xff;
    CEepromSaveFlashData(_GLOBAL, pFlashTemp);

}
//--------------------------------------------------

// Description  : Start for Load Eeprom default
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromFinishLoadDefault(void)
{    BYTE i;
    pFlashTemp[0] = 0;
    for(i=1;i<8;i++)        

          pFlashTemp = 0x00;
    CEepromSaveFlashData(_GLOBAL, pFlashTemp);

}

上面这一段代码为什么是这样设置的?

//--------------------------------------------------
// Description  : Save Data of Flash.
// Input Value  : Number of Page of Flash
// Output Value : None
//--------------------------------------------------
void CEepromSaveFlashData(BYTE ucPage, BYTE *pArray)
{
    BYTE cnt,i;
    bit equal=1;

    for(cnt=pFlashAddr[ucPage] + 1;cnt>0;cnt--)
    {
        if((MCU_FLASH[pFlashPage[ucPage] * 1024 + (cnt - 1) * 8] & 0x7f) == (pArray[0] & 0x7f))
        {
            for(i=0;i<8;i++)
            {
                if(MCU_FLASH[pFlashPage[ucPage] * 1024 + (cnt - 1) * 8 + i] != pArray
)
                {
                    equal = 0;
                    break;
                }
            }

            break;
        }

        if(cnt==1)
            equal = 0;
    }

    if(!equal)
    {
        if(pFlashAddr[ucPage] == 127)
        {
            CEepromMoveFlashData(ucPage);
        }
        else
        {
            for(cnt=1;cnt<8;cnt++)
                MCU_FLASH[pFlashPage[ucPage] * 1024 + pFlashAddr[ucPage] * 8 + cnt] = pArray[cnt];

            MCU_FLASH[pFlashPage[ucPage] * 1024 + pFlashAddr[ucPage] * 8] = pArray[0];      
            pFlashAddr[ucPage] += 1;
        }
    }      
}
下面这段代码看不懂是怎么存储到flash中的。希望能一一注释一下!非常感谢!

相关帖子

沙发
kingzlt| | 2014-1-16 16:09 | 只看该作者
我也看不懂,帮顶

使用特权

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

本版积分规则

4

主题

125

帖子

3

粉丝