AUTOSAR 中的内存服务 (MemStack)

AUTOSAR 中的内存服务 (MemStack)

1 MemStack ECU 抽象层和 MCAL 层简介

在本文中,讨论的主题是与 AUTOSAR 中的内存服务 (MemStack) 相关的 ECU 抽象层和 MCAL 层。

用于内存服务的 ECU 抽象层由内存接口 (MemIf)、闪存 EEPROM 仿真(FEE)和 EA(EEPROM 抽象)、外部闪存驱动程序和外部 EEPROM 驱动程序等模块组成。

MCAL 层由内部闪存驱动程序和内部 EEPROM 驱动程序组成。

内存接口(MemIf)负责从下层 Flash 和 EEPROM 模块中进行抽象,并为上层提供统一的地址空间。

2 模拟EEPROM

  • Flash EEPROM Emulation 的概念

EEPROM 和闪存都是非易失性存储器,由一组存储单元组成,每个单元保存一位或多位信息。

可以在字节或字边界上对 EEPROM 进行编程和擦除,这可以在单个单元上完成,而不会干扰其他值。

闪存可以在字或双字边界上编程,也可以使用更大的尺寸,但擦除只能在扇区边界上进行,其中扇区大小主要以Kilobytes为单位。Flash 中的数据以页(必须一次写入的最小字节数)为单位写入,并以扇区(必须一次擦除的最小字节数)为单位进行擦除。

闪存可用于存储数据,这些数据通常使用Flash EEPROM Emulation存储在 EEPROM 中,其中在闪存中实现基于记录的文件系统。

该文件系统中的记录是一组变量,由块的状态(记录+数据)、块的标识符和数据长度组成。

图1 通用闪存块

当一个块被写入闪存时,它由记录和数据组成。

闪存 EEPROM 仿真需要至少两个闪存扇区。只有一个扇区是活动扇区,另一个是非活动扇区。数据被连续写入活动扇区,直到达到扇区限制。如果具有相同标识符的块要用更新后的数据写入,则将其写入下一个空闲地址空间,并且先前写入的地址空间将变为无效。

图2 Flash Memory Sector

当活动扇区已满或活动扇区可用空间小于该扇区要写入的块时,会发生块重组。重组是指将活动扇区中的数据复制到另一个擦除扇区,擦除当前活动扇区,另一个扇区成为活动扇区。在重组期间,只有块的最新条目被复制到新扇区。当当前活动扇区变满时,重复此过程。

AUTOSAR 中的 Flash EEPROM Emulation 模块负责为上层提供一个统一分段的 32 位虚拟线性地址空间。

FEE模块根据虚拟页面大小(物理页面大小的倍数)的配置来管理块的对齐。块是虚拟页面大小的倍数,虚拟页面大小是物理页面大小的倍数。虚拟页面大小不能小于物理页面大小。闪存中要写入、读取或擦除的数据使用闪存 EEPROM 仿真的概念进行管理。

Flash 驱动程序负责向上层异步提供基本的读、写和擦除功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖果Autosar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值