Autosar模块介绍:内存模块简介

news2025/4/15 2:43:34

上一篇 | 返回主目录 | 下一篇

Autosar模块介绍:内存模块简介

  • 1 内存基本概念及分类
    • 1.1 内存基本分类及基本作用
    • 1.2 TC397芯片内存说明(示例)
  • 2 内存管理基本概念
    • 2.1 代码运行基本逻辑
    • 2.2 代码及数据管理
    • 2.3 非易失性数据管理
      • 2.3.1 EEPROM
      • 2.3.2 FLASH

1 内存基本概念及分类

1.1 内存基本分类及基本作用

RAM(Random Access Memory,随机存取存储器):RAM是计算机用于临时存储数据和程序的主要内存类型,可以被读取和写入,并且数据在断电后会丢失

ROM(Read-Only Memory,只读存储器):ROM是一种只能读取而无法写入或修改的存储器,通常用于存储固定的数据和程序,如并且数据在下电后不丢失

Cache(Cache Memory,快取存储器):快取存储器是位于CPU和主内存之间的高速缓存,用于加快对常用数据的访问速度,可认为RAM的一种类型

EEPROM(Electrically Erasable Programmable Read-Only Memory): 一种可擦写的可编程只读存储器,与传统的只读存储器(ROM)不同,EEPROM允许在电路上进行擦除和编程操作,以更新存储的数据,实现单字节数据擦写,较Flash更为昂贵

Flash(Flash Memory, 闪存存储器):闪存存储器是一种非易失性存储器,常用于存储固件、操作系统、移动设备的应用程序以及个人数据等,具有快速读写速度和低功耗的特点,结合了RAM以及ROM的优点,汽车电子中常用的存储类型,一般擦写只能按较大的块进行,较为便宜

WOM(Write-Only Memory,只写存储器):只写存储器是一种只能写入而无法读取的存储器,通常用于特定的控制系统或加密应用

##注意事项
1.以上仅为车载控制器中常用 类别,存在其他类别(可自行了解)
2.也可简单认为下电丢失为ROM,下电不丢失为RAM,因为其他性质与具体芯片功能设计相关,对于常用场景关注属性为读、写、擦除速度(主要与芯片设计相关,如地址、数据总线设计以及内存本身设计限制,更具体的原理性内容对于使用意义不大)以及下电是否丢失
3.考虑到价格因素等,在车载MCU芯片使用的内存一般为Flash + RAM,需要存储的非易失性数据会存储在Flash(用来模拟EEPROM)

1.2 TC397芯片内存说明(示例)

针对以上描述,下面简单说明汽车电子行业广泛使用的芯片TC3XX(参考TC3XX手册)
在这里插入图片描述
如上图(TC397系统架构图),可以看出存在以下几类存储:

  1. PF(Program Flash)主要用于存放代码等,CPU可直接进行取指执行

  2. DMU(Data Memory Unit)UCB、FEE(模拟EEPROM)等功能相关
    – Data Flash Memory for CPU EEPROM (DF0)
    – User Configuration Blocks (DF0)
    – Configuration Sector (DF0)
    – Data Flash Memory for HSM EEPROM (DF1)

  3. 内核直接关联存储可用于堆栈、全局变量等
    – Program Scratch-Pad SRAM (PSPR)
    – Data Scratch-Pad SRAM (DSPR)
    – Program Cache (P-Cache)
    – Data Cache (D-Cache)
    – Local Memory Unit (DLMU)

  4. Local Memory Unit (LMU)
    – LMU SRAM (CPU DLMU or LMU LMURAM)
    – DAM SRAM (DAMRAM)

  5. Boot ROM (BROM)

## 注意事项
1.存在同一块存储,不同的内核访问经过的总线不一致的情况,因此执行效率存在差异,故在优化代码、数据存放位置时可从此处入手
2.简单进行区分(下电丢失为RAM、下电不丢失为ROM),DF0—DF1、PF0—PF5、BROM则为ROM,其余内存可认为RAM
3.开发中常用的存储,如PF0—PF5(代码存储等),DF0(UCB(AB分区),DFLASH(不常用的配置数据,版本号等内容),FEE(常用非易失数据)),DLMU、PSPR、DSPR、LMU可用于全局变量或者栈的存储
4.除此之外需要注意内存基本结构,不同的内存类型也不同(如Dflash、Pflash的扇区以及页大小不一样),这影响读、写、擦除等操作

2 内存管理基本概念

2.1 代码运行基本逻辑

简单来说,代码执行逻辑:

  1. 从程序接口获取指令,可从代码存储区(Pflash(若支持直接取指),RAM(将代码复制到此处),或者代码缓冲区)
  2. 程序操作从数据接口读回到通用数据寄存器中的数据
  3. 将操作完成的数据存储回相应的位置(若存在此代码)

从上述过程,可知知道代码、数据分开进行存储,因此在生成可执行程序时需要分开指定代码、数据的存储位置

2.2 代码及数据管理

SRI(Shared Resource Interconnect): 共享资源互联,用于访问内部共享寄存器
SPB (System Peripheral Bus): 系统外部总线,用于访问外设寄存器等

注意事项:SRI以及SPB为功能划分名称,不指示具体功能总线

正如我们所知的,嵌入式软件最后的可执行文件生成大概分为四步:预编译编译汇编链接。对于内存分配(代码放置的位置,数据放置的位置等),都在最后链接环节进行。对于链接过程,主要依据链接文件的定义进行(比如tasking的后缀为.lsl文件、HighTech的后缀为.ld文件等),即通过链接文件可以指定对应文件的代码、数据、堆栈等存放位置,也就实现了对内存管理。

注意事项:
1.通过排列和压缩代码段、数据段和堆栈段的位置,可最大化合理利用内存
2.通过指定到合理的内存位置,也可提高内存访问效率,如TC397存在内核直接访问的内存区域,访问自身该区域的内存与访问其他核的该类型内存经过的总线不一样,因此也造成了访问效率上的差异

2.3 非易失性数据管理

非易失性数据(Non-volatile data)是指在断电或系统重启之后,仍然能够保持原有数据内容的信息。与之相对的是易失性数据(Volatile data),在断电或系统重启时会丢失其中的数据。

对于车载控制器一般存在存储一些下电不允许丢失的数据的要求(如控制器复位原因、故障数据等),对于常见的存储类性为EEPROM、Flash,下面对比下两种存储类型。

2.3.1 EEPROM

EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器):一种非易失性存储器,使用电场效应晶体管(FET)来存储数据,EEPROM可以通过在特定区域施加高电压来擦除数据,并通过将电荷注入晶体管来编程数据,擦写和编程操作可以在特定的存储区域进行,而不会影响其他存储区域的数据

相对FLASH存在以下优点
1.采用电擦除的方式,可以单独擦除其中的数据
2.可单字节地进行编程,存储数据使用方便
3.适用于需要频繁擦写和更新数据的应用,如配置存储、校准数据等

相对FLASH存在以下缺点
1.电路更为复杂,因此成本更高
2.成本原因,一般芯片没有内置,使用需要额外成本

2.3.2 FLASH

FLASH:一种基于闪存技术的非易失性存储器,使用浮动栅晶体管(Floating Gate FET)来存储数据,由页(Page)构成扇区(Sector),然后扇区构成整个内存块,擦除操作必须在整个扇区(Sector)上进行,编程/写入操作基于整个页(Page)。

相对于EEPROM优点
1.价格便宜,一般MCU芯片存在内置芯片(用于模拟EE的存储,如TC397的DF0,相对于存储代码的区域Sector以及Page会更小一点,方便操作速度以及灵活度)
2.适合更大块连续数据存储
3.一般为内置存储,不需要外设总线操作

相对于EEPROM缺点
1.操作复杂,页内其他数据,需要通过软件操作避免其他数据写入影响
上一篇 | 返回主目录 | 下一篇

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

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

相关文章

中手游上半年扭亏为盈,仙剑IP魅力不减?

你也曾有过江湖梦吗?你也曾因“为国为民、为友为邻”的侠者心无处可安而苦恼吗?那么,“仙剑”系列游戏或许可以成为你的灵魂寄托之所。而能让侠者的江湖梦具象化的幕后厂商,便是中手游。 两年前,中手游斥巨资买下了仙…

大厂面试之算法篇

目录 前言 算法对于前端来说重要吗? 期待你的答案 算法 如何学习算法 算法基础知识 时间复杂度 空间复杂度 前端 数据结构 数组 最长递增子序列 买卖股票问题 买卖股票之交易明细 硬币找零问题 数组拼接最小值 奇偶排序 两数之和 三数之和 四数之…

利用PPT导出一张高清图的方法,office与WPS只需要使用一个即可,我使用的是office。

利用PPT导出一张高清图的方法,office与WPS只需要使用一个即可,我使用的是office。 1,PPT的功能拓展来解决导出高清图片方法1.1,PPT功能拓展—>安装插件: 2,各种方法导出图片效果显示:2.1&…

vue antv X6 ER图

第一 引入antv $ npm install antv/x6 --save 第二 写入代码 官网demo的fetch(/data/er.json)有问题 <!-- RE图--> <template><div class"fangan"><div id"container" style"min-width: 400px; min-height: 810px"&g…

27、Flink 的SQL之SELECT (窗口函数)介绍及详细示例(3)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

UE5读取json文件

一、下载插件 在工程中启用 二、定义读取外部json文件的函数&#xff0c;参考我之前的文章 ue5读取外部文件_艺菲的博客-CSDN博客 三、读取文件并解析为json对象 这里Load Text就是自己定义的函数&#xff0c;ResourceBundle为一个字符串常量&#xff0c;通常是读取的文件夹…

图像处理之《基于语义对象轮廓自动生成的生成隐写术》论文精读

一、相关知识 首先我们需要了解传统隐写和生成式隐写的基本过程和区别。传统隐写需要选定一幅封面图像&#xff0c;然后使用某种隐写算法比如LSB、PVD、DCT等对像素进行修改将秘密嵌入到封面图像中得到含密图像&#xff0c;通过信道传输后再利用算法的逆过程提出秘密信息。而生…

七天学会C语言-第五天(函数)

1. 调用有参函数 有参函数是一种接受输入参数&#xff08;参数值&#xff09;并执行特定操作的函数。通过向函数传递参数&#xff0c;你可以将数据传递给函数&#xff0c;让函数处理这些数据并返回结果。 例1&#xff1a;编写一程序&#xff0c;要求用户输入4 个数字&#xf…

Vue路由和Node.js环境搭建

文章目录 一、vue路由1.1 简介1.2 SPA1.3 实例 二、Node.js环境搭建2.1 Node.js简介2.2 npm2.3 环境搭建2.3.1 下载解压2.3.2 配置环境变量2.3.3 配置npm全局模块路径和cache默认安装位置2.3.4 修改npm镜像提高下载速度 2.4 运行项目 一、vue路由 1.1 简介 Vue 路由是 Vue.js…

C++核心基础教程之STL容器详解 list

set/multiset 插入只有insert&#xff0c;没有push_back, push_front, 因为会自动排序 set是用二叉树去管理的&#xff0c;稍微修改树的结构就会改变&#xff0c;所以他不允许修改&#xff0c;迭代器是只读迭代器。 因为形参名和实参名相同&#xff0c;所以要用this 把下…

分布式共识算法

一、共识算法的目标 为了保证集群中各个无服务器节点的一致性&#xff0c;达到不会应为服务器的故障导致数据丢失&#xff0c;大概有以下三种&#xff1a;Paxos、Raft、ZAB 二、Raft 2.1、Raft算法概述 不同于Paxos算法直接从分布式一致性问题出发推导出来&#xff0c;Raft…

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

此教程适合若依前后端分离项目&#xff0c;其他项目可以在扩展列表中进行查找。 近期公司里需要对很久以前的RuoYi-Vue前后端分离项目扩展出flowable的功能&#xff0c;当然这个重任也是落在了我的身上&#xff08;不然也不会有这篇文章&#xff09;&#xff0c;然后我在官网看…

MySQL---优化日志

目录 一、MySQL优化 3、mysql server上的优化 3.1、MySQL查询缓存 3.2、索引和数据缓存 3.2、线程缓存 二、MySQL日志 2.1、redo log 重做日志 2.2、undo log 回滚日志 2.3、错误日志 2.4、查询日志 2.5、二进制日志 2.5.1、基于binlog数据恢复实践操作 六、慢查…

苹果删除的照片如何恢复?无法拒绝的3个方法!

热爱摄影的人通常很热爱生活&#xff0c;照片是捕捉事物、人物、风景以及情绪的最佳方式。通过拍照&#xff0c;我们可以留住生活中路过的美好瞬间&#xff0c;所以照片对我们来说是非常有纪念意义的。 但有时候可能会因为误操作而删除了一些非常重要的照片。那么苹果手机删除…

【Python从入门到进阶】36、Selenium 动作交互

接上篇《35、selenium基本语法学习》 上一篇我们介绍了selenium的基本语法&#xff0c;包括元素定位以及访问元素信息的操作。本篇我们来学习selenium操作网页的动作内容。 一、什么是selenium动作操作 动作操作是指使用Selenium调用WebDriver执行与用户交互相关的动作&#…

可视化大屏报表的设计与制作 | 附成果图

大屏可视化报表是一种以大屏幕为展示媒介&#xff0c;通过图形、图表、文字等多种方式将数据信息呈现出来的报表形式。它具有视觉冲击力强、信息量大、交互性高等特点&#xff0c;能够帮助企业快速获取数据背后的价值和洞见&#xff0c;提高决策效率。因此近年来&#xff0c;大…

软件设计模式系列之十一——装饰模式

当谈到设计软件系统时&#xff0c;经常需要考虑如何使系统更加灵活、可扩展和易维护。设计模式是一种被广泛采用的方法&#xff0c;用于解决常见的设计问题&#xff0c;并提供了一套可重用的解决方案。装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&…

iOS应用上线需要注意的问题

将iOS应用上线到App Store需要仔细注意一系列问题&#xff0c;以确保应用的质量、安全性和用户体验。以下是一些在iOS应用上线过程中需要注意的关键问题&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。…

教你快速使用springboot整合图形验证码的两种方式

前言 今天给大家展示的是springboot使用图形验证码的两种方式&#xff0c;第一种基于hutool来实现&#xff0c;第二种方式基于axet实现。现在我们来谈一谈为什么要学习验证码 防止恶意攻击&#xff1a;验证码是一种常用的安全措施&#xff0c;它可以有效地防止恶意攻击&#x…

C++学习笔记——类与对象(六个默认成员函数)

1、构造函数 在一个类中&#xff0c;编译器会自动生成默认的成员函数&#xff0c;当对象进行初始化时&#xff0c;会默认调用这个函数来初始化。 构造函数是一个特殊的成员函数&#xff0c;名字与类名相同,创建类类型对象时由编译器自动调用&#xff0c;以保证 每个数据成员都有…