S32K14x FlexNVM介绍(flexible Non-volatile memory)

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

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

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

相关文章

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(14)-Fiddler断点(breakpoints)实战,篡改或伪造数据

1.简介 上一篇主要就讲解和分享Fiddler断点的理论和操作,今天宏哥就用具体例子,将上一篇中的理论知识实践一下。而且在实际测试过程中,有时候需要修改请求或响应数据,或者直接模拟服务器响应,此时可以使用fiddler进行…

数据库—用户权限管理(三十三)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、用户权限类型 ​三、用户赋权 四、权限删除 五、用户删除 前言 数据库用户权限管理是指对数据库用户的权限进行控制和管理,确保用户只能执…

C++ 成员初始化列表和new运算符的应用

输出一个学生的学号&#xff0c;姓名&#xff0c;性别和出生年月日 class Date { public:Date(int y, int m, int d) :m_year(y), m_month(m), m_day(d) {}void Print(){cout << m_year << "/" << m_month << "/" << m_day…

春秋云境:CVE-2022-23880(taoCMS v3.0.2 任意文件上传漏洞)

目录 一、题目 二、进入题目&#xff1a; 2.1 文件写入一句话木马&#xff1a; 2.2 用SQL语句写入木马&#xff1a; 一、题目 靶标介绍&#xff1a; taoCMS v3.0.2 文件管理处存在任意文件上传漏洞&#xff0c;攻击者可执行任意代码 二、进入题目&#xff1a; 访问/admin …

ios私钥证书的创建方法

ios私钥证书是苹果公司为ios开发者打包app&#xff0c;推出的一种数字证书&#xff0c;只有同一个苹果开发者账号生成的ios私钥证书打的包&#xff0c;才能上架同一个开发者账号的app store。因此不要指望别人给你共享私钥证书和描述文件&#xff0c;因为别人的证书和描述文件打…

C++部署学习

gcc -E src/main.c -o src/main.i gcc -S src/main.c -o src/main.s gcc -C src/main.c -o src/main.o gcc src/main.c -o exec ./exec

【Golang】Golang进阶系列教程--为什么说 Go 语言字符串是不可变的?

文章目录 前言推荐阅读 前言 最近有读者留言说&#xff0c;平时在写代码的过程中&#xff0c;是会对字符串进行修改的&#xff0c;但网上都说 Go 语言字符串是不可变的&#xff0c;这是为什么呢&#xff1f; 这个问题本身并不困难&#xff0c;但对于新手来说确实容易产生困惑…

神奇数学世界的魔力迷踪:破解3的幂次方之谜

本篇博客会讲解力扣“326. 3 的幂”的解题思路&#xff0c;这是题目链接。 昨天刚刚讲解完2的幂&#xff0c;今天就来看看3的幂。 思路1 3的幂不能像2的幂那样&#xff0c;直接看二进制中是否有且仅有一位为1&#xff0c;所以“2的幂”那道题中的前两种方法就失效了&#xff…

leetcode 1005. K 次取反后最大化的数组和

2023.7.30 本题思路如下&#xff1a; 按绝对值大小将数组进行从大到小的排序。遍历数组&#xff0c;若当前元素为负数则修改其符号。遍历完之后&#xff0c;判断k是否为奇数&#xff0c;若为奇数&#xff0c;则还需要修改一次符号&#xff0c;此时修改绝对值最小的那个数的符号…

(原创)Flutter与Native通信的方式:EventChannel和BasicMessageChannel

前言 上一篇博客主要介绍了MethodChannel的使用方式 Flutter与Native通信的方式&#xff1a;MethodChannel 这篇博客接着讲另外两种通信方式 EventChannel和BasicMessageChannel EventChannel用于从native向flutter发送通知事件&#xff0c;例如flutter通过其监听Android的重…

深入篇【C++】手搓模拟实现list类(详细剖析底层实现原理)模拟实现正反向迭代器【容器适配器模式】

深入篇【C】手搓模拟实现list类(详细剖析底层实现原理&#xff09;&& 模拟实现正反向迭代器【容器适配器模式】 Ⅰ.迭代器实现1.一个模板参数2.两个模板参数3.三个模板参数 Ⅱ.反向迭代器实现1.容器适配器模式 Ⅲ.list模拟实现1.定义结点2.封装结点3.构造/拷贝4.迭代器…

线性代数的学习和整理2:用EXCEL进行矩阵计算

目录 0 写在前面的话 网上推荐的线性代数的课程 1 线性代数和矩阵的各种概念 1.1 各种逻辑图 2 关于线性代数入门的各种灵魂发问 2.1 什么是线性&#xff0c;什么是线性相关 &#xff1f; 为什么叫线性变换&#xff1f; 为什么叫线性代数&#xff1f; 2.2 线性代数是人造…

janus-Gateway的服务端部署

janus-Gateway 需求是前后端的webRTC推拉流&#xff0c;但是后端用的是c&#xff0c;于是使用了这个库做视频流的推送和拉取&#xff0c;记录踩坑过程。 如果你也需要自己部署janus的服务端并在前端拉流测试&#xff0c;希望对你有所帮助。 由于janus的服务器搭建需要linux环境…

无涯教程-jQuery - jQuery.get( url, data, callback, type )方法函数

jQuery.get(url&#xff0c;[data]&#xff0c;[callback]&#xff0c;[type])方法使用GET HTTP请求从服务器加载数据。 该方法返回XMLHttpRequest对象。 jQuery.get( url, [data], [callback], [type] ) - 语法 $.get( url, [data], [callback], [type] ) 这是此方法使用的…

RWEQ模型——土壤风蚀模拟

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

QObject::connect: No such signal me::sendMsg(QString s) in ...

QObject::connect: No such signal me::sendMsg&#xff08;QString s&#xff09; in ... 解决方案 在使用qt4的connect中&#xff0c;爆的bug&#xff1a; 导致 teacher 的槽函数 receiveMsg(QString s) 一直没有被调用。。。。 解决方案 去掉参数名&#xff0c; 保留类型…

我的第一个flutter项目(Android Webview)

前言&#xff1a;flutter开发环境搭建Flutter的开发环境搭建-图解_☆七年的博客-CSDN博客 第一个flutter简单项目&#xff0c;内容是一个主界面&#xff0c;其中&#xff1a; 1.内容点击数字自增 2.跳转一个空页&#xff0c; 3.跳转一个WebView界面 其中涉及添加主键&#xf…

【C++ 进阶】继承

一.继承的定义格式 基类又叫父类&#xff0c;派生类又叫子类&#xff1b; 二.继承方式 继承方式分为三种&#xff1a; 1.public继承 2.protected继承 3.private继承 基类成员与继承方式的关系共有9种&#xff0c;见下表&#xff1a; 虽然说是有9种&#xff0c;但其实最常用的还…

MySQL 8.0详细安装配置教程

一. 前言 MySQL是目前最为流行的开源数据库产品&#xff0c;是完全网络化跨平台的关系型数据库系统。它起初是由瑞典MySQLAB公司开发&#xff0c;后来被Oracle公司收购&#xff0c;目前属于Oracle公司。因为开源&#xff0c;所以任何人都能从官网免费下载MySQL软件&#xff0c…

Jmeter接口/性能测试,Jmeter使用教程(超细整理)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、线程组 线程组…