【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

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资