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具有以下主要作用:
- 存储可变数据:FlexNVM可以用于存储需要在不同操作周期之间保留的数据,例如配置参数、校准数据等。这些数据可以在设备断电或重新启动后保持不变,确保系统的连续性和稳定性。
- 模拟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