本文主要是介绍【AUTOSAR】 项目和代码详解(十三)----AUTOSAR Fls 配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Fls
概要
内部Fls
内部Fls为初始化和读取、写入、擦除内部闪存提供服务。Flash驱动程序提供了一个内置的加载器功能,允许将Flash访问代码加载到RAM中,并在需要时从那里执行写/擦除操作。
在ECU的应用模式下,flash驱动程序只能被flash EEPROM仿真模块用来写数据。它不打算写程序代码到闪存在应用模式。这应该在Boot模式下完成,不属于AUTOSAR涉及的内容。
内部Fls直接访问微控制器硬件,并位于微控制器抽象层。外部闪存通常通过微控制器的数据/地址总线(内存映射访问)连接,然后闪存驱动程序使用这些总线的处理程序/驱动程序来访问外部闪存设备。外部闪存设备的驱动程序位于ECU抽象层。
外部Fls
外部Fls为初始化和读取、写入、擦除外部闪存提供服务。它具有与内部Fls具有相同的功能范围。
模块配置
Flash驱动程序的下列常量应该是静态可配置的:
1 闪存基本地址
2 闪存大小
3 正常模式
4 立即作业处理函数中处理的读(比较)、写和擦除操作的最大块大小
5周期或中断处理函数中处理的读(比较)、写和擦除操作的最大块大小
6处理循环写和擦除的调用周期
7 Flash写保护
闪存驱动程序描述应发布以下属性:
1. 擦除的FLASH单元的值
2. 一个FLASH单元的大小(如8bit, 16bit,…)
3.闪存大小(以字节为单位)
4. 闪存基址
5. 物理内存分割(最小可写/可读/可擦/可保护单元)
ETAS中配置Fls是为了适配MemStack有关的其他模块,保证配置项的一致。ETAS ISOLAR中主要配置或修改内容如下:
FlsGeneral
FlsAcLoadOnJobStart
当删除或写作业启动时,flash驱动程序应将flash访问代码加载到RAM中,并在该作业完成或取消后卸载(覆盖)该作业。
TRUE Flash访问代码加载在作业开始/卸载在作业结束或错误。
FLASE Flash访问代码没有从RAM加载/卸载。
FlsBaseAddress
该参数定义了读/写/擦除和比较操作的地址下限。
FlsBlankCheckApi
编译开关以启用/禁用Fls_BlankCheck函数。
FlsCancelApi
编译开关以启用和禁用Fls_Cancel函数。
FlsCompareApi
编译开关,以启用和禁用Fls_Compare函数。
FlsDevErrorDetect
打开或关闭开发错误检测和通知。
FlsDriverIndex
FLS驱动索引值,由FEE使用。
FlsEraseVerificationEnabled
编译开关,以启用擦除验证。
FlsGetJobResultApi
编译开关,以启用和禁用Fls_GetJobResult函数。
FlsGetStatusApi
编译开关,以启用和禁用Fls_GetStatus函数。
FlsSetModeApi
编译开关,以启用和禁用Fls_SetMode函数。
FlsTimeoutSupervisionEnabled
编译开关,以启用超时监控。
FlsTotalSize
该参数与FLS_BASE_ADDRESS一起定义了读/写/擦除和比较操作的地址上限。
FlsUseInterrupts
是否使用中断触发FLS操作。
FlsVersionInfoApi
预处理程序切换,启用/禁用API来读取模块版本信息。
FlsWriteVerificationEnabled
编译开关,以启用写验证。
FlsEcucPartitionRef ???
将Flash驱动程序映射到1个或多个ECUC分区,以使驱动程序API在该分区中可用。
FlsConfigSet
FlsAcErase
RAM中的地址偏移量,擦除的flash访问代码将被加载到该地址偏移量。
用作函数指针访问擦除flash访问代码。
FlsAcWrite
RAM中的地址偏移量,写入的flash访问代码将被加载到该地址偏移量。
用作函数指针来访问写flash访问代码。
FlsCallCycle
flash驱动程序的主函数的调用周期(以秒为单位)。
FlsDefaultMode
该参数是初始化后的默认FLS设备模式。
实现类型:MemIf_ModeType。
FlsJobEndNotification
映射到某个上层模块(通常是Fee模块)提供的操作结束通知例程。
FlsJobErrorNotification
映射到某个上层模块(通常是Fee模块)提供的操作错误通知例程。
FlsMaxReadFastMode
在立即模式下,flash驱动程序处理功能的一个周期中要读取或比较的最大字节数。
FlsMaxReadNormalMode
在正常模式下,flash驱动程序处理功能的一个周期中要读取或比较的最大字节数。
FlsMaxWriteFastMode
在立即模式下,flash驱动程序处理功能的一个周期中要写入的最大字节数。
FlsMaxWriteNormalMode
在正常模式下,flash驱动程序处理功能的一个周期中要写入的最大字节数。
FlsProtection
擦除/写保护设置。只有在硬件支持下才相关。
FlsConfigSet/FlsExternalDriver
FlsConfigSet/FlsSectorList/FlsSector
FlsNumberOfSectors
具有相同FlsSectorSize和值的连续扇区的数量FlsPageSize。参数FlsSectorStartAddress表示第一个扇区的开始地址。
FlsPageSize
这个扇区的一页大小。实现类型:Fls_LengthType。
FlsSectorSize
这个部门的规模。实现类型:Fls_LengthType。
FlsSectorStartaddress
这个扇区的起始地址。实现类型:Fls_AddressType。
FlsPublishedInformation
FlsAcLocationErase
在RAM中的位置,删除的flash访问代码必须加载到该位置。只有在擦除flash访问代码不是位置独立的情况下才相关。如果不提供此信息,则假定擦除flash访问代码与位置无关,因此RAM位置可以自由配置。
FlsAcLocationWrite
在RAM中的位置,写入的flash访问代码必须加载到该位置。只有当写的flash访问代码不是位置独立的时候才有意义。如果不提供此信息,则假定write flash访问代码与位置无关,因此RAM位置可以自由配置。
FlsAcSizeErase
删除flash访问代码所需的RAM字节数。
FlsAcSizeWrite
写入flash访问代码所需的RAM字节数。
FlsErasedValue
被擦除的闪存单元的内容。
FlsEraseTime
最大时间擦除一个完整的闪存扇区。
FlsExpectedHwId
由这个驱动程序所期望的硬件设备的唯一标识符(该驱动程序已为其实现的设备)。仅适用于外部闪存驱动器。
FlsSpecifiedEraseCycles
为闪存设备指定的擦除周期数(通常在设备数据表中给出)。如果指定的擦除周期的数量取决于flash设备重新编程期间的操作环境(温度、电压、…),则在-40℃温度范围内至少保留15年的数据的最小数量。应保证+ 125℃。
FlsWriteTime
最长的时间来写一个完整的flash页面。
自动配置生成
无
参考文档
[1] AUTOSAR_SRS_Fls.pdf
[2] AUTOSAR_SWS_Fls.pdf
[3] AUTOSAR_SRS_SPALGeneral.pdf
[4] RTA-BSWReferenceGuide.pdf
这篇关于【AUTOSAR】 项目和代码详解(十三)----AUTOSAR Fls 配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!