AUTOSAR-存储基础知识

news2024/11/24 8:51:08

1、存储基础知识

RAM 又称随机存取存储器,存储单元的内容可以按照需要随机取出或者存入,存取数据比较快。这种存储器在断电时,会丢失其存储内容,所以一般是 CPU运行时会把程序从 ROM 拷贝到 RAM 里面执行。所以一般 RAM 是作为和 CPU 直接交换数据的内部存储器,也叫主存或者内存。

SRAM 是 Static RAM 的缩写,它具有静态存取功能。静态随机存取存储器采取多重晶体管设计,不需要刷新电路即能保存它内部存储的数据,特点是高性能、低集成度、速度快,一般在 MCU 或者 SOC 会内置一小块 SRAM。

DRAM 是动态随机存取存储器,每隔一段时间固定对 DRAM 刷新充电一次,否则内部数据会消失。像现在的内存条 DDR 都属于 DRAM。ROM 全称是 Read Only Memory,顾名思义,它是一种只能读出事先所存的数据的固态半导体存储器。

ROM 存储的数据掉电不会丢失,可以用来存储各种固化程序和数据。最初的 ROM 是不能编程的,出厂是什么内容就永远是什么内容,非常不灵活。后面出现了 prom,可以自己写入一次,写错了,只能再换一片,后面又出现了可多次擦除写入的 EPROM,每次擦除都要把芯片拿到紫外线上照一下。

EEPROM(Erasable Programmable Read-Only Memory)是在 EPROM 的基础上进一步发展形成的电可擦除可编程只读存储器,不需要擦除的时候去照紫外线,它可以按照字节操作,但是集成度不高、价格比较贵。

FLASH 又称为闪存,属于广义的 EEPROM,因为它也是电擦除的 ROM,它和EEPROM 最大的区别就是, FLASH 只能按照扇区(block)操作,而 EEPROM 可以按照字节操作。 FLASH 的电路结构比较简单,同样容量占芯片面积较小,成本比 EEPROM 低很多。 FALSH 分为 NOR FLASH 和 NAND FLASH。
NOR FLASH 数据线和地址线分开,可以实现 ram 那样随机寻址功能,也就是说程序可以在 norflash 上面直接运行,不需要拷贝到 ram 中。
NAND FLASH 同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。


2、 AUTOSAR 存储

图中是 AUTOSAR 的 BSW 整体架构,其中存储功能从下层到上层依次是存储驱动、存储硬件抽象、存储服务。

注意: Autosar 的存储模块主要是针对用户存放 data 数据的,也就是那些会经常变化,需要实时存储起来的数据。比如一些故障码,当 ECU 检测到一些故障码就需要实时存储起来,在维修的时候就可以通过工具读取出来分析。
Autosar 的存储模块介质主要是两种: EEPROM 和 FALSH 仿 EEPROM,分为片内和片外存储,因此就有 2 * 2 = 4 种存储方式:
• 主芯片片内 FLASH 仿 EEPROM
• 主芯片片内 EEPROM
• 板载片外 FLASH 仿 EEPROM
• 板载片外 EEPROM
注意: 前面讲了 EEPROM 和 FLASH 最大的不同就是 EEPROM 可以操作的最小单位是字节,也就是可以直接擦除编程一个字节。 FLASH 的最小擦除单元是扇区,最小编程单元是 page 页, TC397 芯片的 DFLASH 的逻辑扇区就有 4K 大小, page页大小是 8 字节。


下图是 AUTOSAR 存储模块具体分层:

NVRAM Manager: 简称 NVM,是应用层访问非易失性数据的唯一接口,提供非易失数据的管理服务。这一层会统一按 block 编号,不关心底层是什么存储类型。
Memory Abstraction Interface: 简称 MemIf,主要作用就是将读写的信息解耦,分别分派给 EEPROM 或 FLASH。
EEPROM Abstraction: 简称 Ea, EEPROM 的抽象层,主要作用就是进一步封装片外或片内 EEPROM 驱动,给上层提供统一的 API 接口。
Flash EEPROM Emulation: 简称 Fee, Flash 模拟 EEPROM 的抽象层。
EEPROM Drv: 片内 EEPROM 的驱动。
Flash Drv: 简称 fls,片内 flash 驱动。
片内存储:
1、 NVM->MemIf->Ea->EEPROM Drv->EEPROM
2、 NVM->MemIf->Fee->FLS->FLASH(TC397 上使用的方案)
片外存储:
1. NVM->MemIf->Ea->EEPROM Drv->SPI->EEPROM
2. NVM->MemIf->Fee->FLS->SPI->FLASH

3、 TC397 的 Flash 编程
 

TC397 芯片存储分为 PFLASH(Program Flash Memory)和 DFLASH(Data Flash memory)。
• TC397 有 5 个 3MB 大小 PFx(PF0...PF4)和一个 1MB 大小的 PF5。每个PFx 被划分为 1024KB 大小的物理扇区,每个物理扇区又被划分为 16KB大小的逻辑扇区(Logical Sector)。
• TC397 有两个数据闪存存储区 DFLASH0 和 DFLASH1, 就是用这个 DFLASH来模拟 eeprom,来作为 autosar 的存储服务使用的。 DFLASH0 还包含了用于数据保护的用户配置块(UCBs, User Configuration Blocks)和 1个配置扇区(CFS),用户无法直接访问该配置扇区。
• DFLASH 逻辑扇区可以配置 4KB 或者 2KB, DFLASH 的页有 8 字节组成, 也就是 DFLASH 最小擦除单元为 4/2K,最小编程单元为 8 字节。
• PFLASH 逻辑扇区 16KB, PFLASH 的页有 32 字节组成, 也就是 PFLASH 最小擦除单元为 16K,最小编程单元为 32 字节。

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

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

相关文章

软件测试公式之如何高质量的做BUG分析?

对于BUG分析,测试人员再熟悉不过了。但如果是面对大量的BUG,要如何有效的分析呢?有什么好的方案和行动项?今天聊聊这个话题。 01 BUG分析简单可以分为两类:宏观BUG分析 和 微观BUG分析。 宏观BUG分析:在…

六、线程池的编写与解析 —— TinyWebServer

六、线程池的编写与解析 —— TinyWebServer 一、前言 经过上次数据库连接池的书写,大家也应该明白池的编写。 这里说一下不同点,和一些要注意的点。 为什么使用模板?为什么不用单例模式了?这里的线程池扮演的角色是什么&#x…

【PowerQuery】PowerBI 手动刷新数据内容

PowerBI的手动刷新方式和Excel基本一样,我们通过刷新数据源来实现数据的手动刷新,当然PowerBI 和Excel一样存在着单数据源刷新和全局数据源刷新两个操作。如果希望刷新单个数据源,我们可以在数据字段进行数据的刷新,具体的操作步骤…

阈值回归模型(Threshold Regression Model)及R实现

阈值回归模型是一类回归模型,其中预测变量与结果以阈值依赖的方式相关联。通过引入一个阈值参数(也称为转折点),阈值回归模型提供了一种简单而优雅、可解释的方法来建立结果和预测变量之间某些非线性关系的模型。在生物医学领域中…

Pyramid Scene Parsing Network–CVPR,2017论文解读及其pytorch代码

文章目录 Pyramid Scene Parsing Network--CVPR,2017一、背景介绍二、网络结构和优化方法三、实验结果 Pyramid Scene Parsing Network–CVPR,2017 Github代码链接 一、背景介绍 现阶段随着数据集制作精细化、标签种类变多、具有语义相似标签等导致出…

继承的笔记

继承 对象代表什么, 就得封装对应的数据, 并提供数据对应的行为 对于两种不同的类, 但是具有很多共同的属性的时候我们就想着用继承, 我们可以将共同的属性放置在一个类中, 然后, 只需要新建两个类, 继承共有的类, 然后单独写自己的属性特点 继承类 Java 中提供了一个关键字…

Hadoop-Hbase

1. Hbase安装 1.1 安装zookeeper、 hbase 解压至/opt/soft,并分别改名 配置环境变量并source生效 #ZK export ZOOKEEPER_HOME/opt/soft/zk345 export PATH$ZOOKEEPER_HOME/bin:$PATH #HBASE_HOME export HBASE_HOME/opt/soft/hbase235 export PATH$HBASE_HOME/b…

【OS】操作系统课程笔记 第三章 进程管理

3.1 多道程序设计 吞吐率:衡量一个系统效率的一个指标 采用多道程序设计可以显著提高吞吐率: 但是,并不是内存程序数量越多越好,下面有三点否定: 内存的容量限制了系统可同时处理程序的数目设备数量有限程序道数过多…

✔ ★ 算法基础笔记(Acwing)(三)—— 搜索与图论(17道题)【java版本】

搜索与图论 1. DFS1. 排列数字(3分钟)2. n-皇后问题 2. BFS&#xff08;队列&#xff09;1. 走迷宫二刷总结&#xff08;队列存储一个节点pair<int,int>&#xff09;三刷总结 走过的点标记上距离(既可以记录距离&#xff0c;也可以判断是否走过) ★ ★ 例题2. 八数码二刷…

离线安装PX4日志分析工具Flight Review

使用Flight Review在线分析日志&#xff0c;有时会因为网络原因无法使用 使用离线安装的方式使用Flight Review&#xff0c;可以在无需网络的情况下使用Flight Review sudo apt-get install sqlite3 fftw3 libfftw3-devsudo apt-get install libatlas3-basegit clone --recur…

【Linux核心宝典】Linux 系统目录结构详解 - 01

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

Linux基础入门

一、操作系统安装方法 1、使用u盘安装 工具&#xff08;前提条件&#xff09;&#xff1a; <1>u盘 <2>镜像文件iso/msdn.itellyou.cn <3>把u盘做成PE&#xff1a;大白菜/老毛桃/winPE/软碟通/ultralSO 设置BIOS&#xff1a;通过u盘启动 安装系统&…

Vue项目中实现拖拽排序效果-demo

在Vue3中实现拖拽排序&#xff0c;可以借助一些浏览器自带的API&#xff0c;以及一些Vue3的特性&#xff1a; 使用<template>标签中的v-for指令渲染出一个列表&#xff0c;每个列表项绑定一个draggable属性&#xff0c;使其能够被拖拽。 <template><ul><…

一次I/O操作的过程

什么是IO呢&#xff1f; IO&#xff0c;英文全称是Input/Output&#xff0c;翻译过来就是输入/输出。平时我们听得挺多&#xff0c;就是什么磁盘IO&#xff0c;网络IO。那IO到底是什么呢&#xff1f;是不是有种懵懵懂懂的感觉呀&#xff0c;好像大概知道它是什么&#xff0c;又…

ARIMA模型

1、简介 ARIMA模型(Autoregressive Integrated Moving Average model)&#xff0c;差分整合移动平均自回归模型&#xff0c;又称整合移动平均自回归模型&#xff0c;时间序列预测分析方法之一。ARIMA(p,d,q)中&#xff0c;AR是"自回归"&#xff0c;p为自回归项数;MA…

二叉树题目:最大层内元素和

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;最大层内元素和 出处&#xff1a;1161. 最大层内元素和 难度 4 级 题目描述 要求 给定一个二叉树的根结点 ro…

zookeeper可视化工具ZooInspector用法

最近在做银行的项目&#xff0c;用到了thrift&#xff0c;rpc和zookeeper&#xff0c;所有应用都是注册到zookeeper上的&#xff0c;想知道哪些应用注册上了&#xff0c;就用到ZooInspector这个可视化的工具。 1&#xff0c;下载 链接&#xff1a;https://issues.apache.org/…

flex弹性盒模型与阿里图标的使用

华子目录 flex布局flex布局原理flex使用三要素 阿里图标&#xff08;字体&#xff09; flex布局 相关学习网站&#xff1a;http://c.biancheng.net/css3/flex.html 1.flex是当前最主流的布局方式&#xff1a;用它布局起来更方便&#xff0c;取代了浮动的作用。 2.浮动布局有缺…

BUG:阿里巴巴图标库引入链接后,icon有时候会不显示的话svg下载到本地使用

忽然icon图标就不显示&#xff0c;但是代码、icon链接地址都没有发生变化 解决办法&#xff1a;将icon图标下载到本地&#xff0c;记住前后引用本地的名字要保持一致

学习jQuery库的第一天

简介 什么是 jQuery &#xff1f; jQuery 是一个广泛使用的 JavaScript 库。它简化了网页开发中常见的许多任务&#xff0c;例如 HTML 文档遍历、操作 HTML 元素、处理事件、动画效果、Ajax 网络请求等。通过使用 jQuery&#xff0c;开发人员可以更加高效地编写跨浏览器兼容的…