欢迎光临散文网 会员登陆 & 注册

电子时钟制作(瑞萨RA)(8)----保存数据到flash

2023-09-04 11:06 作者:记帖  | 我要投稿

概述

本篇文章主要介绍如何使用e2studio对瑞萨进行Flash配置,并且分别对Code Flash & Data Flash进行读写操作。 Flash有Code Flash(储存程序代码)以及Data Flash(储存一般数据),其中Code Flash主要以NOR型为主,储存系统程序代码及小量数据;而Data Flash则是以NAND型为主,用于储存大量数据。

硬件准备

首先需要准备一个开发板,这里我准备的是芯片型号R7FA2E1A72DFL的开发板:

 

视频教程

https://www.bilibili.com/video/BV1ck4y1K72M/


Flash

对Code Flash进行读写操作时候,特别要注意写的地址,因为如果写的不对,会覆盖到代码区,造成运行错误,同时对于擦除,是一块的数据都会直接擦除掉。 在RA2E1中,Code flash最高为128KB,Data flash为4KB。

FLASH配置

点击Stacks->New Stack->Storage -> Flash (r_flash_lp)。 

FLASH属性配置

Data Flash

对Data Flash进行读写操作时候,特别要注意要等待Data Flash写完才能进行后续读写操作。 在RA2E1中,Data Flash分布如下所示。 

 回调函数的话有下列事件会进行触发。 

新建flash_smg.c和flash_smg.h。 在主程序中加入该头文件 

回调函数如下所示,在flash_smg.c里。


向Block0种写入时间分钟数据和小时数据,地址范围是0x40100000 - 0x40100FFF,在flash_smg.c里定义


在主程序中定义标志位进行数据保存判断。


 在main主程序中,定义在按键修改完毕数据后进行保存。

 同时需要在按键设置完毕进行数据保存,模式3中需要定义标志位为1。

 同时需要注意变量引入到timer_smg.c。

 同时在RTC时钟走到0秒时候保存一次数据。

 读取函数如下所示,在flash_smg.h中。



同时在主程序中开启flash以及将保存的数据读取出来。 由于需要在RTC开启时放入该数据 ,故需要放在RTC开启前面。

flash_smg.c


flash_smg.h


主程序


电子时钟制作(瑞萨RA)(8)----保存数据到flash的评论 (共 条)

分享到微博请遵守国家法律