【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

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内