AutosarMCAL开发——基于EB FEE驱动

这目录

  • 1. FEE原理
  • 2.EB配置以及接口应用
  • 3.总结

1. FEE原理

在Fls解析文章中介绍了Flash与EEPROM储存器的区别,本文将介绍FEE具体实现原理。
FEE模块,全称Flash EEPROM Emulation Module,旨在使用Flash模拟EEPROM以增加使用寿命。
术语解释
page:Flash最小读写单元,TC3xx系列一般为8byte
logic Section(Block):由若干个page组成的块,Flash擦除的最小单位,TC3xx系列一般为2K或4K
Physical Section(Bank):由若干个块组成的单元,自定义大小
DFlash:若干个Bank组成整个DFLASH储存器
其关系如下图所示
在这里插入图片描述

  • Flash模拟EEPROM
    Flash与EEPROM的主要区别在于EEPROM支持按字节读写,但是Flash最小只能按页读写,这在硬件上已经确定了。那为什么还要说模拟EEPROM呢,我的理解是模拟的EEPROM实际上是模拟EEPROM做内存管理机制,以提高储存空间的使用率以及寿命。为了实现上述目标,衍生处理以下两个机制
    1.数据块标识机制:牺牲部分logic Section中的空间用于标识数据状态,以便进行数据管理
    在这里插入图片描述
    其中,每次向logic Section(Block)中存储数据段时,并不会覆盖之前的数据,因为对于已有数据的内存块写数据需要先擦除。旧数据与新数据均保留在同一个logic Section(Block)中,为了避免混淆,对每个数据段都做标识旧数据设置为Invaild新数据设置为Vaild,读取只读取Vaild数据,这样就只剩下一个问题,那就是如何清除旧数据。

链接: 如何将Flash模拟成EEPROM (EEPROM Emulation)
2.换页机制(GC):
换页机制的目的有两个,1.保证总能由新的块以供使用 2.清楚多余旧数据
在这里插入图片描述
其步骤为:
1.将写满数据的的扇区copy至新的扇区,只copy标记为Vaild的数据段;
2.将旧扇区整块擦除
3.如此循环往复

至此,原来我们想要修改储存在flash中的某个数据段需要将整个块擦除在写入新数据,费事且会造成部分块频繁擦写提前损坏;而采用FEE则解决了上述问题,极大延长了Flash的使用寿命。

2.EB配置以及接口应用

EB配置步骤
1.通过Fls配置扇区
2.FEE设置
2.FEE配置数据块信息

1.通过Fls配置扇区
在这里插入图片描述
在这里插入图片描述
2.FEE设置
在这里插入图片描述
在这里插入图片描述

2.FEE配置数据块信息在这里插入图片描述

接口函数调用步骤
1.Fee_MainFunction();将FEEmainfunc放置所需task
2. Fee_Write( );Fee_Read();Fee_GetStatus();Fee_GetJobResult();

接口名传入参数说明返回参数说明
Fee_Write( )uint16 BlockNumber;uint8 * DataBufferPtrFEE block id;待写入数据buffer指针Std_ReturnType执行状态 (0 ok ;1 not ok)
Fee_Read()uint16 BlockNumber;uint16 BlockOffset;uint8 * DataBufferPtr;uint16 LengthFEE block id;读取数据偏移值;读取数据buffer指针;数据长度Std_ReturnType执行状态 (0 ok ;1 not ok)

3.总结

本文为博主个人学习总结记录,如有不正,欢迎指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/871830.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CTFHUB | web进阶 | JSON Web Token | 无签名

一些JWT库也支持none算法,即不使用签名算法。当alg字段为空时,后端将不执行签名验证 开启题目 账号密码随便输,登录之后显示只有 admin 可以获得 flag 在此页面抓包发到 repeater,这里我们需要用到一个 Burp 插件,按图…

瑞吉外卖-登录时报错:接口404异常

一、错误描述 出现“系统接口404异常”的弹窗,同时一直显示登录中,而无法跳转到后台页面。 二、解决方法 1. 检查浏览器的网址 确保为localhost:8080/backend/page/login/login.html,而不是idea自动生成的,修改过来即可。 2.确…

Unity XR Interaction Toolkit 通过两个手柄控制物体放大缩小

1:给物体添加 XR General Grab Transformer 脚本 2:XR Grab Interactable 的 select mode 选择 Multiple

SpringIoCDI

前言👀~ 上一章我们介绍了Spring MVC,今天介绍Spring核心功能之一IoC Spring到底是什么? Spring IoC 什么是 IoC 容器? IoC 介绍 DI 介绍 IoC详解 获取Bean对象的其他方式 Bean的存储 方法注解 Bean 扫描路径 DI详解 …

拼图游戏02

文章目录 概要整体架构流程代码过程小结 概要 现在需要将图片添加界面中 关键点在于它如何动态地根据游戏状态更新用户界面。它使用了Swing的布局管理器来定位组件,并且通过ImageIcon和JLabel来显示图像。注意,路径字符串中的反斜杠在Java中是转义字符…

选择排序(直接选择排序和堆排序)

一、直接选择排序 1.基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 2.动图展示 3.思路讲解 ①在元素集合array[i]—array[n-1]中选择关键码最大&…

以简单的例子从头开始建spring boot web多模块项目(一)

目的:从头梳理,如何手工从头建立多模块项目。 步骤: 1、建立maven项目,类型:maven Archetype,Name:ParentDemo 选择JDK版本,Archetype:org.apache.maven.archetypes:maven-archetype-quickstart…

网络UDP报文详细解析

目录 一、简介二、详细介绍三、其他相关链接1、TCP报文段的详细图总结2、TCP三次握手和四次挥手详解3、socket通信原理及相关函数详细总结4、网络包IP首部详细解析 一、简介 本文主要介绍UDP报文格式。 二、详细介绍 UDP是一种无连接、不可靠的用户数据报协议,其…

《图解设计模式》笔记(四)分开考虑

九、Bridge模式:将类的功能层次结构与实现层次结构分离 类的两个层次结构和作用 类的功能层次结构:希望增加新功能时 父类有基本功能,在子类中增加新功能 Something父类 …├─SomethingGood子类 想要再增加新功能 Something父类 …├─So…

Windows All download

前言 微软家族产品下载HEU_KMS_Activator download Windows PC desktop download 微软官网all 地址,地址1国内镜像地址,地址1 Windows 常规使用,运维,部署csdn 专栏 ,付费专栏 参考 版本微软官网Windows 7,8,10,…

hyperf 协程作用和相关的方法

什么是协程 协程是一种轻量级的线程,由用户代码来调度和管理,而不是由操作系统内核来进行调度,也就是在用户态进行 判断当前是否处于协程环境内 在一些情况下我们希望判断一些当前是否运行于协程环境内, 对于一些兼容协程环境与…

使用html-docx-js + fileSaver实现前端导出word

因为html-docx-js是16年的老库了,它代码里面用到的with语法现在严格模式不允许,用npm直接引入会报错,所以我们需要用其它方式引入 首先要将html-docx-js的代码放到项目中 html-docx-js/dist/html-docx.js at master evidenceprime/html-do…

modbus协议与RS-485协议的区别

在工业自动化领域,Modbus协议和RS-485通信协议都是常见且重要的技术标准。Modbus协议是一种通信协议,而RS-485则是一种物理层通信标准。 1.Modbus协议 Modbus协议是一种串行通信协议,最初由Modicon(现为施耐德电气公司&#xff0…

智能猫砂盆真的能代替双手铲屎吗?热门前三的智能猫砂盆推荐!

养猫的上班族最大的烦恼应该就是无法时刻为猫咪铲屎了吧,猫砂盆中的便便残留过久会发散臭味,甚至可能滋生细菌,招惹小飞虫,对家庭环境造成困扰,但是上班或出差又无法待在家中,时刻为猫咪待命,以…

Java二十三种设计模式-解释器模式(23/23)

本文深入探讨了解释器模式,这是一种行为设计模式,用于构建和解释执行自定义语言,提供了实现方法、优点、缺点、与其他模式的比较、最佳实践和替代方案的全面分析,帮助开发者在实际应用中做出明智的设计选择。 解释器模式&#xff…

【css】伪元素实现图片个悬停文字聚焦效果

实现重点: 文字覆盖在图片上: 通过使用 position: absolute 将 .box 文字盒子定位在图片上方。父容器 .img-wrap 使用了 position: relative 确保子元素的绝对定位在父容器的边界内生效。 创建悬停效果: 通过使用 &::before 和 &::…

探索Unity3D URP后处理在UI控件Image上的应用

探索Unity3D URP后处理在UI控件Image上的应用 前言初识URP配置后处理效果将后处理应用于UI控件方法一:自定义Shader方法二:RenderTexture的使用 实践操作步骤一:创建RenderTexture步骤二:UI渲染至RenderTexture步骤三:…

普元EOS-基于CriteriaEntity进行数据查询

1 前言 普元EOS内置了一系列数据库的操作类,本文介绍其中的一个类 CriteriaEntity的使用方法。 CriteriaEntity是进行组织数据库查询条件的类,基于该类配合DataObject,实现对数据库的查询。 2 CriteriaType类的实例化 要利用Criteria进行查…

七个电脑数据恢复方法:教你如何恢复电脑上误删除的文件

电脑已成为我们日常生活和工作中不可或缺的一部分,存储着无数珍贵的照片、文档、视频以及各类重要数据。今天来和大家分享一个我们都可能遇到的问题:如何恢复电脑上误删除的文件?随着日常操作的频繁,误删除文件的情况时有发生。 …

vue3【组件封装】日历 (默认标注今日,可选择日期,可标注日期,可切换月份,样式仿 Win11)

效果预览 技术要点 获取每个月最后一天 下个月的第0天,自动会被解析为本月的最后一天 let lastDay = computed(() => new Date(year.value, month.value, 0).getDate());flex 布局末行左对齐 最靠谱的方式是想办法将末行缺失元素填满 本范例中,因星期固定7列,按每月最…