上一篇 | 返回主目录 |

1 基本术语解释

2 Ea组成结构图

Autosar模块介绍:FEE(Flash模拟EEPROM)-LMLPHP

3 Ea基本操作

3.1 通用操作

  • 为EEPROM定义了异步读、写、擦除以及比较服务
  • Eep模块不能缓冲作业,一次只能接受一个作业。在作业处理过程中,Eep模块不接受其他作业
  • Eep模块不能缓冲要读或写的数据,将通过API传递的指针引用的应用程序数据缓冲区

3.2 作业的进程(通用需求)

  • 如果EEPROM支持中断处理,则可以设置中断的处理方式,否则只能轮询的处理
  • 如果启用中断控制作业处理,中断服务例程(Eep_Irq.c)需要

3.3 读操作过程

  • 提供两种不同的操作模式: Normal Mode、Fast Mode
  • 如果外部EEPROM不支持Burst Mode,模块将会处理为Normal Mode
  • EepNormalReadBlockSize参数为Normal Mode单周期读取的字节数据长度,超过后会进行多次读取
  • EepFastReadBlockSize参数为Fast Mode单周期读取的字节数据长度,超过后会进行多次读取
  • 如果操作成功,将会将EEPROM的状态切换成IDLE,并将当前作业状态修改为OK。并且如果配置了通知函数,将会进入EepJobEndNotification
  • 当检测到错误时,将会忽略当前的操作,并且将EEPROM切换成IDLE,并将当前作业状态修改为Fail。且如果配置了通知函数,将会进入EepJobErrorNotification

3.4 写操作过程

  • Eep模块只能在一个作业处理周期内向EEPROM硬件写入(和擦除)多个字节
  • 对于内部EEPROM,可以写入单个字节。外部EEPROM可以在RAM中写入多个字节,然后写入EEPROM
  • 存在两个不同的操作模式:Normal Mode、Fast Mode
  • 如果外部EEPROM不支持Burst Mode,模块将会处理为Normal Mode
  • 通过参数EepNormalWriteBlockSize可配置正常模式下单个周期写入参数长度
  • 通过参数EepFastWriteBlockSize可配置快速模式下单个周期写入参数长度
  • 如果EEPROM硬件没有自动完成EEPROM单元,则Eep模块应在写入它之前擦除EEPROM单元
  • 如果要写入的字节数小于可擦除和/或可写的数据单元,则Eep模块应通过执行读-修改-写操作来保存受影响的EEPROM单元格的数据
  • 如果给定参数(电子地址和长度)与可擦除/可写数据单元不对齐,Eep模块应通过读修改-写操作保存受影响的EEPROM单元的数据
  • 通过EepJobEndNotification通知完成写操作,通过EepJobErrorNotification通知错误状态

3.5 擦除过程

  • Eep模块应仅在一个作业处理周期内擦除EEPROM硬件支持的EEPROM字节数
  • 如果EEPROM硬件支持,并且给定参数(可擦除块地址和长度)与可擦除块对齐,则Eep模块应使用块擦除命令
  • 如果给定的擦除参数(EEPROM地址和长度)与可擦除的数据单元不对齐,Eep模块应通过读-修改-写操作保存受影响的EEPROM单元的内容
  • 通过EepJobEndNotification通知完成擦除操作,通过EepJobErrorNotification通知错误状态

3.6 比较过程

通过EepJobEndNotification通知完成状态,若出现错误通过EepJobErrorNotification通知上层软件,结果不相等通过Eep_JobErrorNotification通知上层软件

4 Ea常用操作时序

4.1 初始化

Autosar模块介绍:FEE(Flash模拟EEPROM)-LMLPHP

4.2 读/写/擦除/比较

Autosar模块介绍:FEE(Flash模拟EEPROM)-LMLPHP

4.3 当前操作取消

Autosar模块介绍:FEE(Flash模拟EEPROM)-LMLPHP

上一篇 | 返回主目录 |

11-13 12:33