牛卧堂MCU技术交流

标题: 怎么利用data flash模拟EEPROM? [打印本页]

作者: youyouyou    时间: 2020-11-30 15:59
标题: 怎么利用data flash模拟EEPROM?
各位大佬,我现在有一块NUC029的芯片,现在想将全部的程序都放到EEPROM中去,将相当于芯片复位之后程序不会丢,开机之后依旧可以运行。不知道模仿EEPROM可不可以实现?如果可以的话,我按照例程那样的,直接将相关的的配置代码放到main()之内,while()之前行不行?

#define Test_data_size 8
#define Test_page_amount 4


int main(void)
{
        uint32_t flash_i;
        uint8_t u8Data;
       
        int instant_sec,last_sec;
        uint8_t key;

        SYS_UnlockReg();
        SYS_Init();
        SYS_LockReg();
       
        /***********************************
        利用data flash模拟EEPROM
        ************************************/
        /* Test Init_EEPROM() */
        Init_EEPROM(Test_data_size, Test_page_amount);
       
        /* Test Search_Valid_Page() */
        Search_Valid_Page();
       
        /* Test Write_Data() */
        for(flash_i = 0; flash_i < 254; flash_i++)
        {
                Write_Data(flash_i%Test_data_size, flash_i%256);
        }
       
        /* Test Write_Data() contain Manage_Next_Page() */
        Write_Data(flash_i%Test_data_size, 0xFF);
       
        /* Test Read_Data() */
        Read_Data(0x7, &u8Data);
       
        /* Test Write over 20000 times */
        while(Get_Cycle_Counter() < 20000)
        {       
                for(flash_i = 0; flash_i < 247; flash_i++)
                {
                        Write_Data(flash_i%Test_data_size, flash_i%256);
                }                
        }

...........

        while(1)
       {
       ......
        ......
         ......
        }

}


截屏2020-11-30 下午3.54.15.png (82.39 KB, 下载次数: 384)

截屏2020-11-30 下午3.54.15.png

截屏2020-11-30 下午3.54.07.png (122.79 KB, 下载次数: 377)

截屏2020-11-30 下午3.54.07.png

作者: admin    时间: 2020-12-1 10:04
flash支持断电保存程序代码
作者: youyouyou    时间: 2020-12-1 13:01
admin 发表于 2020-12-1 10:04
flash支持断电保存程序代码

麻烦请问需要怎么操作呢?一直没找到相关的才想到了EEPROM。
作者: admin    时间: 2020-12-1 13:49
请编译好宁的代码,有icp或者keil直接烧进去就好了.
作者: youyouyou    时间: 2020-12-1 14:07
admin 发表于 2020-12-1 13:49
请编译好宁的代码,有icp或者keil直接烧进去就好了.

啊,是我描述的不清楚。我想要的要求不是只是保存代码。而是类似于,断电之后再上电还能继续断电前的程序跑起来。
作者: Angus    时间: 2020-12-1 16:39
本帖最后由 Angus 于 2020-12-1 16:40 编辑
youyouyou 发表于 2020-12-1 14:07
啊,是我描述的不清楚。我想要的要求不是只是保存代码。而是类似于,断电之后再上电还能继续断电前的程序 ...

断电后,下次上电,你是要从上次断电的地方开始执行吗?
你是不是要保存所有的 RAM 数据、所有寄存器的数据和程度状态字?  不然,下次上电,怎么可能知道上次的各种状态呢?
作者: youyouyou    时间: 2020-12-1 17:09
Angus 发表于 2020-12-1 16:39
断电后,下次上电,你是要从上次断电的地方开始执行吗?
你是不是要保存所有的 RAM 数据、所有寄存器的数 ...

是的,就是下次上电之后,要从上次断电的地方开始执行。目前仅找到了data模仿EEPROM的资料,还没有模仿成功。我是初学者,才拿到新唐的芯片边搞产品边学习请大佬们多多赐教。




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