【AUTOSAR】 项目和代码详解(十三)----AUTOSAR Fls 配置

2023-11-10 07:50

本文主要是介绍【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 配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381327

相关文章

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class