首页 > 其他分享 >FLS & FEE基础功能配置

FLS & FEE基础功能配置

时间:2024-10-16 15:50:11浏览次数:8  
标签:双扇 QS FEE FLS 配置 扇区 NVM

随着MCU外挂EEProm成本和设计优化,行业内主流使用Flash模拟EEprom。英飞凌MCU芯片的FEE在PFLASH(DFlash0)12M存储进行模拟EEPROM功能,擦除、读、写在FLASH中进行,DFlash1预留给HSM。

1 FLS、FEE配置

FEE驱动可以配置为以下三种模式:

FEE_DOUBLE_SECTOR_AND_QUASI_STATIC_DATA  NVM和QS区

FEE_DOUBLE_SECTOR_DATA_ONLY 双扇区NVM

FEE_QUASI_STATIC_DATA_ONLY 准静态区QS

注:Fls地址0xaf00 0000,切除空间0x100 000

注: FeeBlockTypeConfigured选项设置

示例1: FEE中block_1中配置32字节的空间,存储0x5A数据。

示例2: FEE中block_2中配置54字节的空间,存储0xA5数据。

注意:

对于NVM普通数据(双扇区),FeeBlockTypeConfigured应该设置第一个。

对于QS配置,FeeBlockTypeConfigured应该设置为FEE_QUASI_STATIC_DATA_ONLY。

如果既有NVM又有QS区,选择第二个,如果将FeeBlockTypeConfigured设置为FEE_DOUBLE_SECTOR_AND_QUASI_STATIC_DATA,那么在FeeBlockConfiguration部分中需要配置普通双扇区和QS块。FeeQsBlockAddress地址仅适用于QS块。因为这个地址是在FLS中配置的。此地址不应与NVM双扇区大小地址重叠。此外,在配置QS块地址(FeeQsBlockAddress)和QS块大小(FeeBlockSize)时,用户必须确保它们不会违反在FLS中配置的QS扇区大小。不同QS区地址也不应该重叠,应该是连续的。

如果FeeBlockTypeConfigured配置为FEE_DOUBLE_SECTOR_DATA_ONLY,则只应配置正常的双扇区数据块。如果选择FEE_QUASI_STATIC_DATA_ONLY,则只应该配置QS数据块。

与在FEE中完成的配置相对应的配置也必须在FLS中完成。可以这样做:

1)进入FLS配置,配置扇区为sector_0普通双扇区和sector_1为QS扇区。

2)配置每个扇区的大小。

3)适当地给出两个扇区的起始地址:NVM的起始地址写0,QS的起始地址为NVM的sectorsize *2 + 0.

注意,QS扇区地址应该在正常双扇区地址的扇区之后。QS扇区起始地址的计算方法如下:

QS扇区起始地址=NVM双扇区算法中一个Fls扇区的扇区大小x2+NVM起始地址

TC3xx芯片中,PFlah中一个Page为32 Bytes,DFLash中一个Page为8 Bytes

根据上面的截图:

NVM双扇区算法的一个扇区大小= 507904

QS扇区起始地址= 2 × 507904= 1015808

在使用普通双扇区的情况下,QS扇区大小的计算可以总结如下:

QS扇区大小=总闪存大小-(双扇区算法的一个扇区大小x2)

注意:

QS的FlsSectorStartaddress不应该与NVM块重叠。

如果feblocktypeconfigure配置为FEE_DOUBLE_SECTOR_DATA_ONLY,那么应该只配置一个FlsSector, FlsNumberOfSectors的值为2。

如果配置为FEE_QUASI_STATIC_DATA_ONLY,则FlsNumberOfSectors只有一个值为1的FlsSector。因此,在上面的例子中,应该配置值为1的FlsSector_0。

如果feblocktypeconfig被配置为FEE_DOUBLE_SECTOR_AND_QUASI_STATIC_DATA,那么FLS配置中的扇区顺序应该是:FlsSector_0应该配置为2个扇区,然后FlsSector_1应该配置为扇区数量的值为1。

采用DFlash进行EEPROM仿真的算法是双扇区算法。

2 API接口调用

用户必须注意将英飞凌FEE与已配置的FLS模块(FLS配置参数:FlslfxFeeUse)链接起来,以专门支持英飞凌对FEE的实现。这是必需的,因为FLS模块实现了供英飞凌FEE使用的其他非autosar api,这些api只有在FLS配置为支持英飞凌FEE时才可用。

1) Writing blocks close to GC threshold

当写入新数据块时,将WL中存在的前一个数据块的大小添加到新传入块的大小中,并将结果与阈值进行比较。如果可能超出阈值,则将尝试将新的传入块写入下一个连续的字行。如果确定即使在这种情况下也会突破阈值,则会触发GC。这个决定的结果是,接近阈值的Flash内存中有几页没有被利用,并且GC可能比预期的更早被触发。这种行为的发生取决于Flash中已经存在的接近阈值的块的大小和请求写入的块的大小。

2) FEE_E_GC_TRIG DEM

在GC期间,如果要复制的块的总大小大于扇区中的可用空间(违反阈值),则会触发FEE_E_GC_TRIG DEM并引发非法状态通知。用户必须确保块大小和阈值的配置是明智的。

3) Data pointer for Fee_Read and Fee_Write API

在读写API中传递的数据指针需要内存对齐(字对齐)。

4) Quasi Static data blocks

准静态数据块是指在ECU生命周期内不经常更新的大数据块(4K的整数倍)。NVM不容易适应处理准静态数据。因此,所有标准的NVM块都是通过NVRAM管理器处理的。然而,准静态数据将由准静态管理器处理。

准静态管理器是由用户实现的对准静态数据的管理。准静态数据块使用FEE的读写api进行读写。FEE还提供了其他api,例如Fee_17_EraseQuasiStaticData,它们专门用于QS数据。

只有NVM数据存在:

FeeBlockTypeConfigured = FEE_DOUBLE_SECTOR_AND_QUASI_STATIC_DATA

存在NVM和准静态数据:

FeeBlockTypeConfigured = FEE_QUASI_STATIC_DATA_ONLY

只有准静态数据存在:

3 NVM空间

1) PFLASH共16MB,分为Cache和Noncache区

2) PF分为6个Bank

3)DF分为2个Bank

扇区Physical Sector(物理扇区)是内存的一个物理区域与另一个内存区域隔离。一个物理扇区包含多个逻辑扇区。Logical Sector(逻辑扇区):Flash擦除的最小单位。一个逻辑扇区可以包含多个wordline。

PF一个Bank分为3MB的有3个物理sector,1MB的有1个物理sector;每个物理sector分为64个逻辑sector,每个逻辑sector空间16KB。

DF的逻辑扇区的划分有两种模式:Single Ended Mode(单端模式)和Complement Sensing Mode。DF0分为256个逻辑扇区。

Single Ended Mode:每个逻辑扇区的大小为4Kbyte;

Complement Sensing Mode:每个逻辑扇区的大小为2Kbyte。

PFlash: 最小擦除逻辑sector16 KByte

DFlash: 最小擦除逻辑sector4 Kbyte

Page为可编程的最小单元,在英飞凌TC3xx中PFlash一个page大小为32Byte,DFlash一个page为8Byte。

标签:双扇,QS,FEE,FLS,配置,扇区,NVM
From: https://blog.csdn.net/wklweiran/article/details/142977733

相关文章

  • 麒麟操作系统jdk环境配置
    本文以java8为例。jdk8下载地址:https://www.oracle.com/java/technologies/downloads/#java8进入页面后可以看到不同操作系统jdk包的下载链接(需注册账号登录才能下载安装包)。由于麒麟操作系统是基于Linux系统的,所以这里首先进入Linux下载列表。根据CPU型号查询内核架构类型......
  • linux 为普通用户配置sudo权限
    linux为普通用户配置sudo权限  目录一.关于sudo二.sudo的工作过程三.为普通用户配置sudo权限3.1方法一:把普通用户的附属组更改为wheel,使其具有sudo权限(推荐)3.2方法二:修改/etc/sudoers文件,使普通用户具有sudo权限四./etc/sudoers配置文件详解 一.关于sud......
  • Rust环境配置
    docshttps://www.yuque.com/opensource-books/trpl-zh-cnRustnightlybuildusesomefeatureonnightlyortest参考https://www.rust-lang.org/tools/installrustuprunnightlycargobuildRust镜像源exportRUSTUP_DIST_SERVER=http://mirrors.ustc.edu.cn/r......
  • 读取配置文件
    读取默认配置文件配置文件(application.properties):可以是yml也可以是properties格式,properties不支持map、数组等,yml可以spring.profiles.active:devserver.port:18080读取@ComponentpublicclassTest{ @Value("spring.profiles.active")privateStringpr......
  • 虚拟机网络配置
    由你发送:我的wifi连接了两台电脑192.168.1.100192.168.1.101这是他们相对于wifi的ip现在在192.168.1.100上又有一个子网里面有一台虚拟机是172.24.112.1现在我药如何用172.24.112.1访问192.168.1.101上的虚拟机172.24.112.2 要让你的虚拟机172.24.112.1......
  • 基于RabbitMQ(windows)的MQTT(WSS)的安装配置和使用
    RabbitMQ官网地址https://www.rabbitmq.com/1.安装Erlang/OTP2.安装RabbitMQ3.开启后台管理rabbitmq-pluginsenablerabbitmq_managementhttp://127.0.0.1:15672/#/ 用户名密码默认guest4.开启mqttrabbitmq-pluginsenablerabbitmq_mqtt开启webmqttrabbitmq-pluginsenab......
  • 支付宝沙箱版(什么是支付宝沙箱、配置支付宝沙箱、配置内网穿透、在SpringBoot项目中对
    文章目录0.前言1.什么是支付宝沙箱2.配置支付宝沙箱2.1沙箱应用的应用信息(获取app-id和gateway-url)2.2沙箱账号的商家信息和买家信息2.3下载秘钥工具2.4生成秘钥(获取private-key)2.5配置秘钥(获取alipay-public-key)3.配置内网穿透3.1使用cpolar实现内网穿透3.2......
  • spring上 -基于注解配置bean,动态代理,AOP笔记
     用的是jdk8,spring框架里jar包的下载可以自己搜到注解用到的jar包。  60,注解配置Bean快速入门 基本介绍 代码结构: UserDao.javapackagecom.hspedu.spring.component;importorg.springframework.stereotype.Repository;/**使用@Repository标识该......
  • CentOS高可用运维案例之---配置bond0
    案例说明:在CentOS7系统下,两个Server之间网卡部署bond0连接测试。系统版本:[root@node201~]#cat/etc/os-releaseNAME="CentOSLinux"VERSION="7(Core)"ID="centos"ID_LIKE="rhelfedora"VERSION_ID="7"PRETTY_NAME="CentOSLinu......
  • 基于MinIO配置bucket,用于文件下载和浏览
    文章目录引言I配置文件浏览访问权限配置文件浏览访问地址文件下载地址II知识扩展MinIO内置访问策略只读策略只写策略读写策略diagnosticsconsoleAdmin引言需求:文件下载用于OTA升级,文件浏览用于产品展示。实现方案:基于MinIO配置bucket访问权......