单片机虚拟EEPROM模块的应用

strongerHuang 2025-09-30 17:19


介绍

有些应用场景下,我们可能需要用到EEPROM的功能,但有些单片机内部没有EEPROM,那怎么办呢?


瑞萨Virtual EEPROM模块简称VEE模块,该VEE模块可以基于Flash模拟基本的EEPROM功能,支持读和写操作两种常见的数据操作。在应用程序的整个生命周期内,保留存储扇区的擦除计数,擦除计数可以随时访问。驱动函数会自动做磨损均衡处理,延长Flash的使用寿命。


主要内容


本文以开发板RA2单片机为例,使用VEE模块存取数据。

单片机虚拟EEPROM模块的应用图1


1、创建新工程


单片机虚拟EEPROM模块的应用图2


2、工程创建完成后,通过FSP配置Virtual EEPROM


2.1 添加Virtual EEPROM Stack

选择配置标签页 Stack → New Stack → Storage → Virtual EEPROM on Flash(rm_vee_flash)

单片机虚拟EEPROM模块的应用图3


2.2 配置Virtual EEPROM Stack

在生成的Stack框图中,点击 Virtual EEPROM on Flash(rm_vee_flash),可以看到estudio左下角出现属性栏,按照如图所示配置。

单片机虚拟EEPROM模块的应用图4


2.3 配置g_flash0 flash(r_flash_lp)

点击框图中g_flash0 flash(r_flash_lp),并按下图所示,设置Flash Ready Interrupt Priority。此处工程设置为Priority 1,可根据实际需要调整。

单片机虚拟EEPROM模块的应用图5


按照上面步骤配置配置完成后,点击 单片机虚拟EEPROM模块的应用图6 FSP就会生成工程Virtual EEPROM以及相关的初始化代码。


3、编写示例代码,验证Virtual EEPROM功能。


在工程中打开scr/hal_entry.c文件,void hal_entry(void) 函数由main函数调用,我们自己的代码由hal_entry调用,这样做符合瑞萨软件的架构,方便以后使用RTOS。


在hal_entry.c文件中添加下面的代码

单片机虚拟EEPROM模块的应用图7
单片机虚拟EEPROM模块的应用图8


然后在hal_entry函数调用上面的rm_vee_example函数

单片机虚拟EEPROM模块的应用图9


接下来就可以编译调试程序,当程序正常运行起来之后,就可以看到绿色LED灯亮起,说明存到Flash中的数据再读取出来,经过对比确认数据正确。也可以在调试状态下,将全局变量添加到观察窗口,单步调试,观察数据的变化。


程序运行前

单片机虚拟EEPROM模块的应用图10


程序运行起来之后

可以看到右侧相关变量的数值已经有改变

单片机虚拟EEPROM模块的应用图11


在后面附加了如何在调试过程中观察全局变量数值变化。


*附:观察全局变量的方式


选中要观察的数据名称,右击,选择添加监看表达式

单片机虚拟EEPROM模块的应用图12
单片机虚拟EEPROM模块的应用图13


可以在调试界面看到相关表达式的值,随着程序运行,可以在这里观察数值的变化。

单片机虚拟EEPROM模块的应用图14


结论

使用VEE模块,可以方便地使用Flash存取数据。不再需要自己去考虑数据存储的位置以及磨损均衡等问题,可以把精力专注于实现功能上。

------------ END ------------

推荐阅读:


单片机虚拟EEPROM模块的应用图15strongerHuang

2个内容




声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
单片机
more
最强Cortex-M85单片机,测评免费送开发板!
单片机常用状态机QP框架的原理
单片机还能这样输出PWM
【有奖评测 】最强Cortex-M85单片机!RA8D1套件(显示屏+摄像头)免费评测
单片机通过WiFI进行OTA固件升级
单片机电池供电产品设计要点
单片机虚拟EEPROM模块的应用
单片机跑RTOS的优势!
单片机固件版本号常见的规则~
同样的单片机代码,编译后的hex为啥会变?
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号