S32K14x FlexNVM介绍(flexible Non-volatile memory)

news2024/11/19 1:49:13

S32K14x是一款NXP推出的32位汽车级微控制器,其存储结构相对复杂。下面是对其存储结构的中文介绍:
S32K14x采用了分层存储结构,包括Flash存储器和SRAM存储器。Flash存储器用于存储程序代码和常量数据,而SRAM存储器用于存储变量数据和堆栈。
Flash存储器分为两个部分:主Flash和FlexNVM,FlexNVM代表flexible Non-volatile memory 灵活非易失存储器。主Flash用于存储应用程序代码和只读数据,其容量通常较大。FlexNVM是一种灵活可编程的非易失性存储器,用于存储可变数据和EEPROM模拟数据。它提供了更小的存储容量,但具有非易失性的特性。
SRAM存储器用于存储变量数据和堆栈。S32K14x具有多个SRAM区域,包括核心SRAM、系统SRAM和备份SRAM。核心SRAM用于存储核心处理器的寄存器和变量数据。系统SRAM用于存储外设寄存器和变量数据。备份SRAM用于存储关键数据的备份,以防止主存储器故障。
此外,S32K144还具有Cache存储器,用于提高程序执行速度。Cache存储器位于核心SRAM和主Flash之间,用于缓存频繁访问的指令和数据,以减少对主存储器的访问次数。
这种分层结构可以满足不同类型数据的存储需求,并提供高效的数据访问和执行速度。

在这里插入图片描述
P-Flash包含了FlexNVM,D-Flash是由FlexNVM在P-Flash中进行分割出来的,E-Flash也是非易失性闪存作为FlexNVM的一部分,被Flash控制器FTFC用来模拟EEPROM ( EEPROM备份)。EEE(Emulated EEPROM 虚拟eeprom),Flash模块( FTFC )通过有效地提供RAM缓冲器( FlexRAM )作为虚拟EEPROM作为用户/ EEPROM驱动程序的接口来模拟EEPROM的特性。使用硬件内置的归档系统将数据自动编程到FlexNVM块中。
FlexRAM,可作为SRAM或高耐受力模拟EEPROM存储的RAM,用来访问前面的EEE的,直接映射到EEEE。或者当成系统RAM(无ECC error correct code)

FlexNVM

FlexNVM是S32K系列微控制器中的一种非易失性存储器技术。它是一种灵活可编程的存储器,用于存储可变数据和模拟EEPROM数据。
FlexNVM具有以下主要作用:

  1. 存储可变数据:FlexNVM可以用于存储需要在不同操作周期之间保留的数据,例如配置参数、校准数据等。这些数据可以在设备断电或重新启动后保持不变,确保系统的连续性和稳定性。
  2. 模拟EEPROM功能:FlexNVM还可以模拟EEPROM的功能。EEPROM是一种可擦写的非易失性存储器,用于存储需要频繁更新或修改的数据。通过使用FlexNVM的一部分作为EEPROM模拟存储器,可以实现类似EEPROM的读写操作,而无需额外的EEPROM芯片。
    FlexNVM的灵活可编程性使得开发人员可以根据应用的需求来配置和使用它。可以根据存储容量的需求来分配FlexNVM的大小,并根据需要选择是否使用其模拟EEPROM功能。这种灵活性为开发人员提供了更多的选择和控制权,以满足不同应用场景的存储需求。
    所有的S32K1xx系列设备都有一个称为FlexNVM的部分。该部分可用作Pflash (程序闪存)、Dflash (数据闪存)、模拟EEPROM备份( E-Flash )。在大多数中,该部分的长度为64 KB。然而,S32K148设备具有512 KB长度的FlexNVM,将其添加到1.5 MB的Pflash中,总共产生2 MB。对于FlexNVM,必须给予特殊的考虑。它可以从读取,编程,擦除,模拟EEPROM更新,或用于CSEc(Cryptographic Services Engine 密码服务引擎)密码操作,但一次只能使用其中之一。

FlexNVM部分可用于三种不同的配置:
•不启用EEPROM和CSEc;
•启用EEPROM和CSEc;
•启用EEPROM和CSEc。

地址映射

在这里插入图片描述

不启用EEPROM和CSEc

在这里插入图片描述
这种配置的主要特点是:
· 512 kB FlexNVM既可以作为PFlash,也可以作为DFlash。换句话说,FlexNVM可以用于程序或数据存储。如果用作PFlash,请记住FlexNVM部分是不可缓存的。
· 4 kB FlexRAM可以用作SRAM,但它不像主SRAM那样具有ECC,并且以Flash时钟的速度运行。·由于没有启用EEPROM机制。FlexNVM的持久性将遵循数据表中规定的PFlash内存的相同特性。
当使用此配置时:
•当数据闪存需要很少的数据更新并且需要超过4 KB的(可用于EEPROM的最大尺寸)时,此配置特别有用。
•如果需要超过1.5 MB的PFlash,此部分可以作为PFlash和/或DFlash使用。如果需要超过2 MB的PFlash,则可以使用外部存储器

EEPROM enabled

在这里插入图片描述
这种配置的主要特点是:
•在这种配置中,FlexNVM的64 KB用作E - Flash ( EEPROM备份),448 KB保持为PFlash或DFlash。换句话说,在启用EEPROM后,该存储器无法通过任何方式访问。
·使用具有32位访问权限的4 KB EERAM进行EEPROM仿真。
何时使用此配置:
•此配置在需要具有高持久度(高达100K的循环)的数据分区时特别有用;
•最适合频繁更新记录。例如:·启停更新

EEPROM and CSEc enabled

在这里插入图片描述

该配置的主要特点是:
•在该配置中,FlexNVM的64 KB用作E - Flash ( EEPROM备份和密钥存储),448 KB保留为PFlash或DFlash。换句话说,在启用EEPROM后,该存储器不能以任何方式访问。
•要使用CSEc操作,需要启用EEPROM,因为E - Flash也用于保存CSEc数据。
•CSEc最多使用512 Bytes进行密钥存储,留给EEPROM使用剩余的3.5 KB EERAM。
当使用此配置时:
•执行CSEc操作时需要此配置。

参考文章:
https://blog.csdn.net/king110108/article/details/118862118

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

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

相关文章

常见的几种排序

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C 🔥座右铭:“不要等到什么都没有了,才下…

【分布式系统】分布式系统的8个谬误

网络可靠 对于分布式系统来说,网络、计算、存储是三大基石,系统之间进行拆分隔离之后,那么必定存在网络通讯,而网络是最不可靠的。 不管是从硬件层面还是软件层面来说,网络是不可靠的。(断电、配置错误、ID…

ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱

一、ChatGPT结合知识图谱 在本专栏的前面文章中构建 ChatGPT 本地知识库问答应用,都是基于词向量检索 Embedding 嵌入的方式实现的,在传统的问答领域中,一般知识源采用知识图谱来进行构建,但基于知识图谱的问答对于自然语言的处理…

《JavaSE-第二十一章》之线程的状态与中断

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…

Ctfshow web入门 sqli-labs特性篇 web517-web568 详细题解 全

web517 输入?id1 正常 输入?id1 报错 .0 输入?id1-- 正常判断是字符型注入,闭合方式是这里插一句。limit 100,1是从第100条数据开始,读取1条数据。limit 6是读取前6条数据。 ?id1 order by 3-- 正常判断回显位有三个。?id1 and 12 union se…

json-server详解

零、文章目录 json-server详解 1、简介 Json-server 是一个零代码快速搭建本地 RESTful API 的工具。它使用 JSON 文件作为数据源,并提供了一组简单的路由和端点,可以模拟后端服务器的行为。github地址:https://github.com/typicode/json-…

RWEQ模型——土壤风蚀模拟

详情点击链接:基于“RWEQ”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写 前沿 土壤风蚀是一个全球性的环境问题。中国是世界上受土壤风蚀危害最严重的国家之一,土壤风蚀是中国干旱、半干旱及部分湿润地区土地荒漠化的…

解读Spring-context的property-placeholder

在spring中&#xff0c;如果要给程序定义一些参数&#xff0c;可以放在application.properties中&#xff0c;通过<context:property-placeholder>加载这个属性文件&#xff0c;然后就可以通过value给我们的变量自动赋值&#xff0c;如果你们的程序可能运行在多个环境中&…

Android 面试题 应用程序结构 九

&#x1f525; 核心应用程序 Activity五个状态&#x1f525; Starting-> running-> paused-> stopped-> killed 启动状态&#xff08;Starting&#xff09;&#xff1a;Activity的启动状态很短暂&#xff0c;当Activity启动后便会进入运行状态&#xff08;Running…

大数据Flink(五十四):Flink用武之地

文章目录 Flink用武之地 一、Event-driven Applications【事件驱动】 二、Data Analytics Applications【数据分析】 三、​​​​​​​Data Pipeline Applications【数据管道】 Flink用武之地 应用场景 | Apache Flink 从很多公司的应用案例发现&#xff0c;其实Flink主…

tinkerCAD案例:25. 量角器 - 测量角度

tinkerCAD案例&#xff1a;25. 量角器 - 测量角度 原文 Now we’re going to make a protractor! A Protractor is one of the most basic, but essential, tools for making measurements. It is, then, surprising that the modern protractor is barely over 200 years ol…

简单实现jdk1.7HashMap

1.定义一个Map接口,Entry<K,V>对象为Map的元素 package test;public interface Map<K,V> {V put(K k,V v);V get(K k);int size();interface Entry<K,V>{K getKey();V getValue();}}2.主要实现了put,get以及size()方法 package test;public class HashMap&…

uniapp小程序,根据小程序的环境版本,控制的显页面功能按钮的示隐藏

需求&#xff1a;根据小程序环境控制控制页面某个功能按钮的显示隐藏&#xff1b; 下面是官方文档和功能实现的相关代码&#xff1a; 实现上面需要&#xff0c;用到了uni.getAccountInfoSync()&#xff1a; uni.getAccountInfoSync() 是一个 Uniapp 提供的同步方法&#xff0c…

零代码编程:用ChatGPT对Excel表格进行批量自动化处理

F盘的“北交所上市公司全部发明专利”文件夹里面有几百个这样的Excel表格&#xff0c;格式一致&#xff0c;需要合并所有表格内容到一个表格&#xff0c;方便查找内容&#xff0c;但是不要前面两行。 可以在ChatGPT中这样输入&#xff1a; 写一段Python程序&#xff1a; F盘的…

基于opencv与机器学习的摄像头实时识别数字!附带完整的代码、数据集和训练模型!!

前言 使用摄像头实时识别数字算是目标检测任务&#xff0c;总体上分为两步&#xff0c;第一步是检测到数字卡片的位置&#xff0c;第二步是对检测到的数字卡片进行分类以确定其是哪个数字。在第一步中主要涉及opencv的相关功能&#xff0c;第二步则使用机器学习的方式进行分类…

求三个球面交点的高效解法

文章目录 一、问题描述二、推导步骤代数法几何法 三、MATLAB代码 一、问题描述 如图&#xff0c;已知三个球面的球心坐标分别为 P 1 ( x 1 , y 1 , z 1 ) , P 2 ( x 2 , y 2 , z 2 ) , P 3 ( x 3 , y 3 , z 3 ) P_1(x_1,y_1,z_1),P_2(x_2,y_2,z_2),P_3(x_3,y_3,z_3) P1​(x1​,…

浏览器访问nginx转发打开oss上的html页面默认是下载,修改为预览

使用阿里云盒OSS上传了html页面&#xff0c;在nginx里配置跳转访问该页面时&#xff0c;在浏览器里直接默认下载了该页面&#xff0c;现在想实现预览功能&#xff0c;只需在nginx里的location里修改消息头的Content-Disposition为inline即可 注意要隐藏头信息proxy_hide_header…

【机器学习】西瓜书习题3.3Python编程实现对数几率回归

参考代码 结合自己的理解&#xff0c;添加注释。 代码 导入相关的库 import numpy as np import pandas as pd import matplotlib from matplotlib import pyplot as plt from sklearn import linear_model导入数据&#xff0c;进行数据处理和特征工程 # 1.数据处理&#x…

ChatGPT炒股:爬取股票官方微信公众号的新闻资讯

上市公司的微信公众号&#xff0c;现在已经成为官网之外最重要的官方信息发布渠道。有些不会在股票公告中发布的消息&#xff0c;也会在微信公众号进行发布。所以&#xff0c;跟踪持仓股票的公众号信息&#xff0c;非常重要。 下面&#xff0c;以贝特瑞的官方公众号“贝特瑞新…

合并两个有序数组——力扣88

文章目录 题目描述法一 双指针法二 逆向双指针 题目描述 法一 双指针 使用双指针方法&#xff0c;将两个数组看作队列&#xff0c;每次从两个数组头部取出比较小的数字放到结果中。 void merge(vector<int>&nums1, int m,vector<int>&nums2, int n){int p1…