打印
[应用方案]

怎么利用data flash模拟EEPROM?

[复制链接]
472|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2021-5-24 15:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位大佬,我现在有一块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, 下载次数: 90)


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




使用特权

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

本版积分规则

1323

主题

3805

帖子

0

粉丝