s32k1xx的FLASH学习笔记Flash Memory Module (FTFC)

一、概述

FTFC仅适用于S32K1xx系列设备,

S32K1xx系列map分布表格下载:S32K1XX_内存_MAP-硬件开发文档类资源-CSDN下载

 

1.Flsah内存类型

1.1程序Flsah:可执行程序代码的非易失性闪存

1.2FlexNVM: 非易失性闪存,可以执行程序代码,存储数据,备份模拟的EEPROM数 据

1.3FlexRAM: RAM 可用作SRAM或高速模拟EEPROM存储,加速Flsah编程

在安全引导期间和当FlexRAM作为系统RAM运行时,PCC_FTFC[CGC]必须为1。•CSEc(安全性)或EEPROM写入/擦除将在HSRUN模式(112MHz)中触发错误标志,因为不允许此用例同时执行。设备需要切换到RUN模式(80Mhz)以执行CSEc(安全)或EEPROM写入/擦除。

2.Flsah内存尺寸

       FTFC模块有多种配置。每个配置都由一个或多个读取分区组成。一个给定的读分区一次只能占用一个任务。有多个读分区允许执行并发操作,如读而写(RWW)。必须特别考虑到其中包含FlexNVM的分区,因为FlexMEM特性由几个方面组成,包括数据Flash、模拟EEPROM备份、CSEc特性(需要启用模拟EEPROM)。因此,可以请求对单个FlexMEM读取分区进行读取、编程、删除、模拟EEPROM更新或CSEc加密操作,但一次只能请求其中一个。

该芯片上的FLASH类型的大小如下:

可用的程序Flash随着FlexNVM的大小而减少。当程序Flash被完全使用时,则FlexNVM不可用。         必须发出Pgmpart命令,才能使所有这些内存区域都可用。•对程序闪存的推测性缓冲区的大小等于程序闪存端口宽度的大小。数据闪存的推测缓冲区的大小等于数据闪存端口宽度的大小。

2.1. 128 KB程序Flash/32 KB FlexNVM/2 KB FlexRAM模块(S32K116)

   128KBFTFC flash模块由两个NVM读分区和一个FlexRAM块组成:

                一个128KB程序Flash读分区(非交错1×128KB)

                一个32KBFlexNVM读分区(非交错1×32KB)

                一个2KBFlexRAM

当FlexNVM配置为模拟EEPROM时,关联的EFlash将从内存映射中消失,如图所示

2.2. 256 KB程序Flash/32 KB FlexNVM/2 KB FlexRAM模块(S32K118)

   这个256KB的FTFC flash模块由两个NVM读分区和一个FlexRAM块组成:

一个256KB的程序Flash读分区(非交错的1×256KB)

一个32KB的FlexNVM读分区(非交错的1×32KB)

一个2KB的FlexRAM 

 当FlexNVM配置为模拟EEPROM时,关联的EFlash将从内存映射中消失,如图所示

2.3.256 KB程序Flash/64 KB FlexNVM/4 KB FlexRAM模块(S32K142)

这个256KB的FTFC flash模块由两个NVM读分区和一个FlexRAM块组成:

一个256KB的程序Flash读分区(非交错1×256KB)

一个64KB的FlexNVM读分区(非交错1×64KB)

一个4KB的FlexRAM

当FlexNVM配置为模拟EEPROM时,关联的EFlash将从内存映射中消失,如图所示

2.4. 512 KB程序Flash/64 KB FlexNVM/4 KB FlexRAM模块(S32K144)

512K BFTFC flash模块由两个NVM读分区和一个FlexRAM块组成:

一个512KB程序Flash读分区(交错2×256KB)

一个64KBFlexNVM读分区(非交错1×64KB)

一个4KBFlexRAM

当FlexNVM配置为模拟EEPROM时,关联的EFlash将从内存映射中消失,如图所示

2.5. 1MB程序Flash/64 KB FlexNVM/4 KB FlexRAM模块(S32K146)

  1M BFTFC flash模块由三个NVM读分区和一个FlexRAM块组成:

   两个512KB程序flash读分区(交错2×256KB)

  一个64KBFlexNVM读分区(非交错1×64KB)

   一个4KBFlexRAM

当FlexNVM配置为模拟EEPROM时,关联的EFlash将从内存映射中消失,如图所示

 2.6. 2MB程序Flash/64 KB FlexNVM/4 KB FlexRAM模块(S32K148)

2M BFTFC flash模块由四个NVM读分区和一个FlexRAM块组成:

三个512KB程序flash读分区(交错2×256KB)

一个共享程序/数据flash(FlexNVM)读分区(交错2×256KB)这个共享的读取分区由448KB的                       PFlash(交错2×224KB)和64KB的FlexNVM(交错2×32KB)区域组成。

一个4KBFlexRAM

    最后一个分区(448KB程序闪存和64KB数据闪存/FlexMEM)是一个共享的单读分区,需要考虑,因为代码可能不会在访问64KB数据闪存/FlexNVM区域的同时从448KB程序闪存区域执行。

  由于FlexNVM是为2MB模块上的模拟EEPROM配置的,因此离开值被限制为64KB或没有。

 2.7 内存MAP

S32K1xx系列map分布表格下载:S32K1XX_内存_MAP-硬件开发文档类资源-CSDN下载

各种类型的闪存和闪存的寄存器都有不同的基本地址,如下图所示。每个基本地址都在S32K1xx系列map分布表中指定了

 

二、FLASH内存模式

  FTFC模块有两种操作模式,NVM正常和NVM特殊模式。在此芯片上,FTFC总是配置为NVM正常模式。该芯片没有为NVM特殊模式配置FTFC的操作条件。

三、功能说明

1.删除FLASH中的所有内容

 软件可以通过一系列外围总线写入FTFC寄存器的方式启动“擦除所有块”命令。此外,整个闪存可以从外部SWJ-DP调试端口根据以下顺序删除:

1.设置MDM-AP控制[0]。

2.MDM-APStatus[0]设置为表示已接受批量删除命令。

3.MDM-AP状态[0]在批量擦除完成时清除。  

2.同时操作PFLASH读取分区

     在从特定的PFLASH读分区执行时,FTFC命令(并行引导除外)不能在该PFLASH读分区上运行。以下是每个设备中的PFLASH读取分区数:

   

四、细节说明

1.FTFC模块说明

FTFC模块包括以下可访问的内存区域:

为向量空间的程序flash和代码存储

用于数据存储和其他代码存储的FlexNVM

FlexRAM用于高速性数据存储或传统RAM

     FTFC模块包括一个内存控制器,它执行命令来修改flash内容。擦除的位读取“1”,编程的位读取“0”。编程操作是单向的,它只能将数据位从“1”状态(已擦除)移动到“0”状态(已编程)。只有擦除操作才能将位从“0”恢复为“1”;不能将位从“0”编程为“1”。

      flash位置必须处于擦除状态。不允许在flash位置内累积位编程(无中间清除程序的背回背程序操作)。不允许将现有的0s重新编程为0,因为这会过度强调设备。flash的标准运输条件。随着时间的推移,由于已擦除(“1”)状态和/或已编程(“0”)状态的退化,可能会导致数据丢失。因此,建议在工厂编程之前立即重新擦除每个flash块或扇区,以确保实现完整的数据保留能力。

  

 

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值