牛卧堂MCU技术交流

标题: NUC100系列APROM中不能擦除APROM? [打印本页]

作者: kingpon    时间: 2013-12-19 16:21
标题: NUC100系列APROM中不能擦除APROM?
我想在APROM中接受一段新的程序代码,然后把它写在APROM中其他地址中,在APROM中不能对APROM中个的FLASH进行擦除,写入吗?

作者: admin    时间: 2013-12-19 17:07
可以
作者: kingpon    时间: 2013-12-24 16:30
admin 发表于 2013-12-19 17:07
可以

不行啊,我在APROM中,调用擦除,写入FLASH函数,但是写入不了呀?
我的意思是:
我在0000~0x7fff前32K 存放固件升级程序,然后通过USB接收新的程序,然后把新的程序放在地址0X8000后面。我擦除0x8000后的APROM空间发现不能写入。
作者: admin    时间: 2013-12-24 16:49
你代码贴上看看, 或者参考\SampleCode\StdDriver\FMC_IAP 样例
作者: kingpon    时间: 2013-12-26 08:46
// erase fun
INTU8 STORELOC_Erase(INTU32 u32addr)
{
        FMC->ISPCMD.FCTRL = 2;
        FMC->ISPCMD.FCEN = 0;
        FMC->ISPCMD.FOEN = 1;
        FMC->ISPADR        = u32addr;
        FMC->ISPTRG.ISPGO = 1;       

        if (FMC->ISPCON.ISPFF == 1)
        {
                FMC->ISPCON.ISPFF = 0;
                return FALSE;
        }
        return TRUE;
}

INTU8 STORELOC_Write(INTU32 u32addr, INTU32 u32data)
{
        FMC->ISPCMD.FCTRL = 1;
        FMC->ISPCMD.FCEN = 0;
        FMC->ISPCMD.FOEN = 1;
        FMC->ISPADR        = u32addr;
        FMC->ISPDAT        = u32data;
        FMC->ISPTRG.ISPGO = 1;       
        if (FMC->ISPCON.ISPFF == 1)
        {
                FMC->ISPCON.ISPFF = 1;
                return FALSE;
        }
        return TRUE;
}

void APP_Program(INTU8 page,INTU32* PBuf)
{
    INTU16 i,j;
    INTU32 addr;
    UNLOCKREG();
    addr=page*512+STORELOC_DATA_BASE;   //STORELOC_DATA_BASE=0x8000
    STORELOC_Erase(addr);
    for (i=0,j=0;i<512;i+=4)
    {
        STORELOC_Write(addr+i,PBuf[j++]);
    }
    dfu.deviceState=DEVICE_IDLE;
    dfu.dfuRecvCnt=0;
}

发现0X8000后面的数据不会变,都是FF
作者: a_ziliu    时间: 2013-12-26 09:26
1,沒有UNLOCK
2,沒有ENANBLE ISP功能
3,有個AP UPDATED ENABLE 的暫存器要打開
作者: kingpon    时间: 2013-12-26 10:06
1,去掉UNLOCK也不行
2,ENANBLE ISP功能已开启,用同意的擦除函数,擦除数据FLASH是可以的
3,AP UPDATED ENABLE 的暫存器在哪里呢?技术手册好像没有描述呀
作者: kingpon    时间: 2013-12-26 16:36
a_ziliu 发表于 2013-12-26 09:26
1,沒有UNLOCK
2,沒有ENANBLE ISP功能
3,有個AP UPDATED ENABLE 的暫存器要打開

1,去掉UNLOCK也不行
2,ENANBLE ISP功能已开启,用同意的擦除函数,擦除数据FLASH是可以的
3,AP UPDATED ENABLE 的暫存器在哪里呢?技术手册好像没有描述呀
作者: a_ziliu    时间: 2013-12-27 13:10

作者: kingpon    时间: 2013-12-27 18:03
a_ziliu 发表于 2013-12-27 13:10


这是我的技术手册对ISPCON的描述。版本是V2.01,我用的是NUC120。bit3是保留用还是有APUEN用呢?

作者: zhbbhz    时间: 2013-12-30 08:49
把代码移到LDROM中运行看看。
作者: a_ziliu    时间: 2013-12-30 17:11
nuc120 a/b版沒有這個功能,要d版才有。




欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2