[AutoSar]BSW_Memory_Stack_001 存储栈概述


  

关键词

嵌入式、C语言、autosar、OS、BSW

平台说明

项目Value
OSautosar OS
autosar厂商vector , EB
芯片厂商TI 英飞凌
编程语言C,C++
编译器HighTec (GCC)
autosar版本4.3.1

在这里插入图片描述
  
  
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  
  

缩写描述
EEPROMElectrically Erasable Programmable read only memory
NVMNVRAM Manager
MEMIFMemory Abstraction Interface
EAEEPROM Abstraction
EEPinternal/external EEPROM DRIVER
FEEFlash EEPROM Emulation
FLSinternal/external Flash Driver

背景

  以下内容参考英飞凌TC3XX系列。

一、存储栈的组成和功能

  如下图所示,存储栈由NVM,MEMIF,EA,FEE,EERDRV,FLSDRV组成。其中NVM 处于服务层,MEMIF,EA,FEE处于ECU抽象层,EERDRV,FLSDRV 处于微控制器抽象层(MCAL)
  这些模块共同组成了autosar 存储栈,用于实现工程的memory管理,读写。
在这里插入图片描述

二、名称定义和描述

在这里插入图片描述

  Data Memory Unit (DMU): 控制在所有程序和数据闪存上执行的命令序列。
  Flash Standard Interface (FSI): 对所有闪存执行擦除、编程和验证操作。
  Program Flash (PFLASH): PFLASH分为一个或多个Bank,每个Bank连接到一个CPU。用于储存编程代码和常量数据。通过点对点传输来优化性能,以尽量减少延迟和最大限度地提高带宽。每个PFLASH连接一个PFLASH Read PFRWB (Write Buffer),用于ECC校正和检测,并将读数据提供给系统。
  Data Flash (DFLASH): DFLASH用于模拟EEPROM和存储数据,分为两个BANK。与PFLASH访问相比,DFLASH读访问相对较慢。DFRWB (Read Write Buffer)是指FSI接口中的DFlash向DFlash提供读数据。DFLASH模块还包含存储配置数据的区域-User Configuration Blocks(ucb)和用户无法访问的Configuration Sector(CFS)。
  Program Flash Interface (PFI): 每个PFLASH Bank 都有一个独特的点对点快速连接到PFI提供的CPU。PFI是CPU和PFRWB之间的接口,包含用于存储推测数据的预取缓冲区。
  Boot ROM (BROM): 通过DMU SRI端口连接到系统。
  BANK: 包含一个或者多个 DFLASH Logical sector,也可以包含一个或者多个PFLASH Logical sector。以TC3XX为例,如下图所示三个BANK 分别为1M 2M 3M 。
在这里插入图片描述
  Physical Sectors: 与其他内存区域间的物理隔离,只要该BANK没用到,物理存储丢了也没啥事。一个Physical Sectors 包含(mapping关系)了多个Logical Sectors。
  Logical Sectors: 由多个PFLASH and DFLASH 字行组成。是芯片级上的最小擦除单位,也就是我们通常说得 “sector”。在FEE 中将 一个physical flash 分为了两个 Logical Sectors。

  page: 一组对齐的数据双字加上ECC扩展。它是可编程(写入)的最小单位。
在PFLASH 中长度为32 bytes + 22-bit ECC extension。
在DFLASH 中长度为8 bytes + 22-bit ECC extension。

  Wordline: 一组对齐的字节。
PFLASH: 1024 bytes.
DFLASH: 512 bytes in single ended mode and 256 bytes in complement sensing mode.
   Program Burst: 爆发时写入,比单page写快得多。
PFLASH: 8 pages (256 bytes).
DFLASH: 4 pages (32 bytes).
   (Logical) block: 属于在autosar中的概念,这是用户看到的最小可写/可擦单元。由一个或多个虚拟页组成。

在这里插入图片描述

2.1 片上单次最小擦除范围和单次最小写入范围

   以TC3XX 为例,最小擦除范围为一个Logical Sectors,最小写入范围为一个page。

三、EEPROM(DFLASH)和Flash

  参考:一、 存储类型
  EEPROM 和 FEE 都是Non-volatile memory,用于mcu在断电后的数据存储。

3.1EEPROM(DFLASH)

  EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片,作为MCU中一种重要的存储位置,但是价格昂贵。
  EEPROM 一般用于需要经常改变的信息的存储,例如DTC,上下电计数等。
  EEPROM 由EEP block 组成,一个EEP block一般1-4bytes。写入的时候最小单位为EEP block,在写入之前可以擦写也可以不擦直接修改。如下图所示,擦除仅会影响一个EEP block。
在这里插入图片描述
在这里插入图片描述
上图为TC3XX 中的DPFLASH_EEPROM 的sector structure。

3.2 Flash

  相比于EEPROM,FLASH 有着更大的存储单元,不能被单page擦除,只能以sector为单位进行擦除。一个sector由多个page组成。
在这里插入图片描述
在这里插入图片描述

四、实现总览

在这里插入图片描述
在这里插入图片描述

NVM

  • 提供抽象数据存储。
  • 启动和下电的时候数据的处理。
  • 将NV数据与rom默认值和RAM工作副本包括永久块或临时块的关联。
  • 数据可能分布在多个“设备”上。
  • 显式同步。
  • 改进工作处理
  • BSWM支持*

MEMIF

  • 提供在FLASH或者EEPROM 和上层之间的调度。

FEE/EA

  • 对NVM 的抽象。

FLS/EEP

  • 访问memory 的驱动或者通过SPI访问片外内存的驱动。

>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老灰╮(╯-╰)╭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值