今天给大家介绍下AutoSar是如何实现嵌入式系统中的存储器管理的。首先看一下AutoSar的软件架构。如下图所示,其中基础软件很多模块,如通信模块,IO,存储模块等,它们大致可以分为以下三层。 服务层 ECU抽象层 微控制器抽象层 这里我们主要介绍存储管理模块的内容。该模块的主要任务是: 1、为应用层提供存储服务接口,确保数据存储和维护。 2、将存储地址和属性进行抽象化处理。 该模块主要包括以下内容: 1、NvM:NVRAM(NonVolatile,非易失)Manager用来提供同步/异步服务管理维护NVdata.应用层对于MemStack的需求通过NvM来实现。 2、MemIf:MemoryAbstractionInterface用来提供NvRAMmanager与存储器抽象模块(如FEE/EA)的接口。 3、EA:EEPROM抽象化模块用来通过EEPROMDriver(Eep)管理EEPROMdevice。 4、Fee:FlashEEPROMEmulation模块用来通过FlashDriver(Fls)管理Flashdevice。 5、RamTst:RAMTest用来检查RAM的好坏。 6、FlsTst:FlashTest用来检查Flash的好坏。 7、Eep:EEPROMDriver用于EEPROM的读写,擦除。 8、Fls:FlashDriver用于Flash的读写,擦除。并且可以配置Flash的读写权限。 以存储器抽象化(FEEandEA)举例来说: FlashEEPROMEmulation(Fee):通常是用DFLASH模拟EEPROM。 ?通常将存储器分为两块。 ?数据存储动态依次存储直道该块存储器存满。 ?当该块存储器存满后,FEE会将各存储内容的最新状态保存在另一块存储器内,然后将存满的那块存储器擦除。 EEPROMAbstraction(Ea):直接使用EEPROM ?各模块有固定地址 ?基于存储器的擦写次数,EA可以作多次备份。 在发动机控制器的硬件中通常采用FEE而非Ea。通过下图可知为何采用Flash而非EEPROM。 更多信息可以参考北京哪里有治疗白癜风的重庆白癜风医院
|