找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[NUC] 怎么利用data flash模拟EEPROM?

[复制链接]
跳转到指定楼层
楼主
youyouyou 发表于 2020-11-30 15:59:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位大佬,我现在有一块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, 下载次数: 437)

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

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

截屏2020-11-30 下午3.54.07.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
admin 发表于 2020-12-1 10:04:21 | 只看该作者
flash支持断电保存程序代码
牛卧堂
回复 支持 反对

使用道具 举报

板凳
 楼主| youyouyou 发表于 2020-12-1 13:01:08 | 只看该作者
admin 发表于 2020-12-1 10:04
flash支持断电保存程序代码

麻烦请问需要怎么操作呢?一直没找到相关的才想到了EEPROM。
回复 支持 反对

使用道具 举报

地板
admin 发表于 2020-12-1 13:49:30 | 只看该作者
请编译好宁的代码,有icp或者keil直接烧进去就好了.
牛卧堂
回复 支持 反对

使用道具 举报

5#
 楼主| youyouyou 发表于 2020-12-1 14:07:53 | 只看该作者
admin 发表于 2020-12-1 13:49
请编译好宁的代码,有icp或者keil直接烧进去就好了.

啊,是我描述的不清楚。我想要的要求不是只是保存代码。而是类似于,断电之后再上电还能继续断电前的程序跑起来。
回复 支持 反对

使用道具 举报

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

断电后,下次上电,你是要从上次断电的地方开始执行吗?
你是不是要保存所有的 RAM 数据、所有寄存器的数据和程度状态字?  不然,下次上电,怎么可能知道上次的各种状态呢?
回复 支持 反对

使用道具 举报

7#
 楼主| youyouyou 发表于 2020-12-1 17:09:06 | 只看该作者
Angus 发表于 2020-12-1 16:39
断电后,下次上电,你是要从上次断电的地方开始执行吗?
你是不是要保存所有的 RAM 数据、所有寄存器的数 ...

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

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU