NvM学习笔记(一)以TC387为例,分析为什么要使用Flash 模拟 EEPROM ?

news2024/11/25 7:48:04

在嵌入式软件系统中,管理非易失性的数据存储,如在系统启动时,从非易失性存储器中读取一些关键数据,在系统关闭阶段,同步应用程序RAM区的数据到非易失性存储器中,是一项十分必要的工作。

目前行业内用的最广泛的非易失性存储设备主要是EEPROM和FLASH ,其均有在ECU掉电后,存储的数据不丢失这样的属性。

但是EEPROM和Flash由于设计特性和制造工艺的不同,各自都有相应的优势,对应的也有相应的劣势。

对于EEPROM:
优点:

  • 以一个Byte为单位写入和擦除的,使得EEPROM擦写比较独立自由,也不会影响其他数据。
  • EEPROM的擦写寿命(PE cycles)是比较高的,达百万次。

缺点:

  • 容量小
  • 价格贵
  • 读/写速度慢,其读写速度慢的主要原因是受限于IIC和SPI的通信速度
    比如芯片AT25040(SPI Serial EEPROMS), 其最高时钟频率2.1MHZ
    在这里插入图片描述

对于Flash
优点:

  • 容量大
  • 价格便宜
  • 读/写速度快 ,对于位于uC内部的Flash,由于CPU的主频一般都是百万兆HZ,所以CPU访问Flash的速度更快

缺点

  • 擦写寿命很短(通常只有十万次PE cycles)
  • Flash的最小擦除单位是Logical Sector, 最小编程(写)单位是Page, 一般一个扇区(sector)包括了多个页(page)

如在TC3xx中,对于Pflash,一个Page = 32 Bytes; 而对于Dflash,一个Page =8 Bytes。
在这里插入图片描述

在汽车ECU中,需要在下电时保存的数据一般比较多,如发生故障时的DTC和相应的冻结帧,但是EEPROM内存比较小,价格昂贵,而修改Flash中存储的值需要擦除整个内存块,Flash使用寿命短,频繁更新数据势必会降低Flash的使用寿命。

为了降本增效,工程师们就想出了一个结合EEPROM和Flash优点的存储方法,采用uc内部的DFLASH 模拟EEPROM,来存储ECU下电时需要保存到非易失性存储器中的数据,在AUTOSAR软件架构中,存储协议栈可以实现这部分功能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux :: 时间日历指令【3】:cal 指令:查询当日是今年的第几天、输出当前月历、指定月历、输出当前年历、指定年历

前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C 入门到入土!!!学习合集Linux 从命令到网络再到内核!学习合集 目录索引&am…

Redis分段锁实现超高并发秒杀

参考尼恩著:《Java高并发核心编程》 技术自由圈 业务情景 还是秒杀场景,假设抖音直播间小杨哥上架6000单螺蛳粉,价格9.9买10包,限时1分钟秒杀,此时准备秒杀的人有1万人。我们首先从技术上来看看如果不进行优化是否可以…

控制四旋翼飞行器以进行多目标航点导航的MPC算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

信不信,3招就能测出你的网工水平

大家好,我的网工朋友 老话常谈一下,在网工这行发展,技术肯定是第一位的。 从你入行的第一步起,就很看重你的技术水平了,越往后,就更注重技术水平和项目经验的融合度。 再往后,技术要有&#…

网络安全实验室|网络信息安全攻防学习平台(脚本关1-6)

传送门: http://hackinglab.cn/ 1. key又又不见了 点击此处开启抓包,send ti repeater 模块 yougotit_script_now2. 快速口算 脚本来源: https://blog.csdn.net/hzxtjx/article/details/125692349 import requests,re# 自动处理cookies&a…

【PCB专题】案例:PCB封装中哪些禁布区我们最常容易忘记增加

USB等直插器件焊接面禁布区 USB器件面那大家都知道有座子有自己的Place_Bound。不同的器件如果Place_Bound重叠的话会报DRC。 但是因为器件是只在一个面上,另一个面是焊接脚,或是另一面不是焊接脚,但PCB封装上为通孔。比如有一些器件从PCB上看是通孔,但PCB Layout人员没见…

c#如何将数据缓存至Redis

环境准备 首先肯定是需要安装redis啦!这是我跑在docker的redis,和安装在本地的是 一样的效果 可视化工具Redis Desktop Manager。 使用方法 第一步,安装nuget包 Microsoft.Extensions.Caching.StackExchangRedis 创建一个asp.net.core项目…

Ubuntu20.04 终端打开不了的问题排查

Ubuntu20.04 终端打开不了的问题排查 今天用virtualbox安装了ubuntu20.04 问题:右键打开终端,怎么也打开不了! 点了也没反应,或者鼠标转小圈圈,然后也没有反应… 解决方法: 1、Ctrl Alt F6 先切换到终…

ChatGPT:求求你憋再问我关于C++多态的任何问题了...

文章目录 💐专栏导读💐文章导读🌷多态在继承中的表现🌺虚函数的重写🌺虚函数重写的两个例外🏵️1.协变🏵️2.析构函数的重写 🌺C11 override 和 final关键字🏵️final&am…

msvcr110.dll丢失怎么修复

msvcr110.dll是Microsoft Visual C 2012 Redistributable的一部分,它是一种动态链接库(DLL),旨在存储许多Microsoft Visual C应用程序共享的功能。这些功能包括数学运算、字符串处理、内存分配和释放等。它在Windows操作系统中起着…

精通Java数组的艺术:从初学者到高手的进阶之路(一)

⭐ 数组⭐ 数组的定义⭐ 创建数组和初始化⭐ 数组常见操作⭐ 数组的遍历⭐ for-each 循环⭐ 数组的拷贝⭐ java.util.Arrays 类 ⭐ 数组 数组的概念 ⭐ 数组的定义 数组是相同类型数据的有序集合。其中,每一个数据称作一个元素,每个元素可以通过一个索引…

Python+Selenium 网页自动化 exe 程序编程实现(最全避坑指南)

前言 在我的日常工作中,经常需要在内网(不连接互联网)的网页版办公系统中进行抓取网页数据、修改表单等大量重复性的操作。我就想是否可以编写出自动化的工具,将这些日常琐碎的操作变得轻松而高效。虽然本人非计算机相关专业&…

OpenGL 纹理

1.简介 纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;你可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的房子上,这样你的房子看起来就像有砖墙外表了。 为了能够把纹理映射(M…

Day973.授权码许可类型中,为什么一定要有授权码? -OAuth 2.0

授权码许可类型中,为什么一定要有授权码? Hi,我是阿昌,今天学习的是auth2中为什么一定要有授权码的内容。 OAuth 2.0 的授权码许可类型,在小兔打单软件的例子里面,小兔最终是通过访问令牌请求到小明的店铺…

使用raspberry pi pico 制作红绿灯

需要的东西:一块面包版、一块raspberry pi pico、红绿黄led灯各一颗、220欧电阻3只、若干线 编程软件:thonny 操作系统:deepin 23 结果展示: 使用raspberry pi pico 制作红绿灯 from machine import Pin import utime yellowled…

4种整流电路和5种滤波电路

4种整流电路和5种滤波电路 基本电路:一般直流稳压电源都使用220伏市电作为电源,经过变压、整流、滤波后输送给稳压电路进行稳压,最终成为稳定的直流电源。这个过程中的变压、整流、滤波等电路可以看作直流稳压电源的基础电路,没有…

前端人必须知道的三种移动跨平台方案

跨平台技术是前端人必备技能,今天就来为大家解读一下近几年业界主流的三大移动端跨平台方案: Web 天然跨平台: Web App、PWA(Progressive Web Apps)、Hybrid App、PHA(Progress Hybrid App)都可…

Springboot自定义starter

文章目录 前言1.引入依赖1.1 json的转换1.2 xml转换依赖 2.定义Formate核心转化接口3.实现核心接口json和xml的转换3.1 json转换的实现3.2 xml转换的实现 4. FormatProperties类5.FormatAutoConfiguration 类配置6.提供一个MyFormatTemplate 模板类7.注册到springboot8.创建spr…

cavity开盖制作的辅助层别

cavity开盖工艺制作的辅助层别 数量:6个

suricata的flow流会话管理分析1

在《suricata中的线程管理分析》一文中,我们看到suricata中有FlowWorker和FlowManager两个线程来处理流表,说明流表的实现应该不简单,果然,看了流相关的这块代码后,发现确实有点复杂,代码估计得慢慢坑&…