1.1 Flash and OTP Menory Blocks

本章介绍配置闪存和一次性可编程(OTP)存储器的等待状态和操作模式的正确顺序。它还包括有关Flash和OTP功率模式以及如何通过启用Flash管线模式来提高Flash性能的信息。

1.1.1 Flash Memory

The on-chip flash is uniformly mapped in both program and data memory space.This flash memroy is always enabled and features:

  • 多个扇区
    可以擦除的最小闪存量是一个扇区。
    拥有多个扇区可以使某些扇区保持编程状态,而只擦除特定的扇区。

  • 代码安全
    闪存受代码安全模块(CSM)的保护。通过将密码编程到闪存中,用户可以防止未经授权的unauthorized人员访问闪存。有关使用代码安全模块的信息,请参见第1.2节。

  • 低功耗模式
    为了在不使用flash时节省电量,可以使用两种级别的低功耗模式。有关可用flash功率模式的更多信息,请参见第1.1.3节。

  • 可配置的等待状态 Configurable wait states
    可以根据CPU频率调整可配置的等待状态,以在给定的执行速度下提供最佳性能。

  • 增强的性能
    提供了闪存管线模式pipeline mode以提高线性代码执行的性能。

1.1.2 OTP Memory

一次性可编程(OTP)存储器的1K x 16块均匀地映射在程序和数据存储空间中。因此,OTP可用于编程数据或代码。与闪存不同,该块只能编程一次,并且不能擦除。

1.1.3 Flash and OTP Power Modes

The following operating states apply to the flash and OTP memory:

  • Reset or Sleep State
    这是设备重置后的状态。在此状态下,the bank and pump处于睡眠状态(最低功率)。当闪存处于睡眠状态时,读取到闪存或OTP存储器映射区域的CPU数据或读取操作码将自动将电源模式更改为待机状态,然后更改为活动状态。在过渡到活动状态期间,CPU将自动停止。完成向活动状态的转换后,CPU访问将正常完成。
  • 待机状态 Standby State
    在此状态下,排和泵 the bank and pump 处于待机功率模式状态。与睡眠状态相比,此状态使用更多的功率,但是转换到活动或读取状态所需的时间更短。当闪存处于待机状态时,读取到闪存或OTP存储器映射区域的CPU数据或读取操作码将自动将电源模式更改为活动状态。在过渡到活动状态期间,CPU将自动停止。闪存/ OTP进入活动状态后,CPU访问将正常完成。
  • 活动或读取状态
    在此状态下,排和泵处于有功功率模式状态(最高功率)。 CPU对闪存/ OTP存储器映射区域的读取或获取访问等待状态由FBANKWAIT和FOTPWAIT寄存器控制。还可以启用称为闪存管线的预取机制,以提高线性代码执行的取回性能。

注:在引导过程中,Boot ROM对位于闪存中的代码安全模块(CSM)密码位置执行虚拟读取。
执行此读取操作以解锁没有密码存储的新设备或已擦除设备,从而可以执行闪存编程或将代码加载到受CSM保护的SARAM中。在已存储密码的设备上,该读取无效,并且CSM保持锁定状态(有关CSM的信息,请参见第1.2节)。读取的结果是,flash将从睡眠(重置)状态转换为活动状态。

Flash/ OTP组和泵始终处于相同的电源模式。有关可用电源状态的图形说明,请参见图1-1。您可以如下更改当前的闪存/ OTP存储器电源状态:

  • To move to a lower power state
    将PWR模式位从较高功率模式更改为较低功率模式。此更改会立即将闪存/ OTP存储库移至低功耗状态。只能通过运行在Flash / OTP存储器外部的代码访问该寄存器。
  • To move to a higher power state
    -要从低功耗状态转换到高功耗状态,有两种选择。
    1.将FPWR寄存器从较低状态更改为较高状态。 这种访问使闪存/ OTP存储器进入较高状态。
    2.通过读取访问或程序操作码提取访问来访问闪存或OTP存储器。此访问将使闪存/ OTP存储器自动进入活动状态。
    从低功耗状态转换到高功耗状态时会有延迟。请参见图1-1。需要此延迟才能使Flash稳定在更高功率的模式下。如果在此延迟期间对闪存/ OTP存储器进行任何访问,则CPU会自动停止,直到延迟完成。

    延迟的持续时间由FSTDBYWAIT和FACTIVEWAIT寄存器确定。从睡眠状态到待机状态的延迟是由FSTDBYWAIT寄存器确定的计数。从待机状态到活动状态的延迟由FACTIVEWAIT寄存器确定的计数被延迟。 FSTDBYWAIT + FACTIVEWAIT会延迟从睡眠模式(最低功耗)到活动模式(最高功耗)的移动。这些寄存器应保持默认状态。

1.1.3.1 Flash and OTP Performance

CPU对闪存/ OTP的读取或数据获取操作可以采用以下形式之一:
• 32位指令提取
•读取16位或32位数据空间
•16位程序空间读取
一旦闪存处于the active power state,则对存储体存储器映射区域的读取或读取访问可以分类为闪存访问或OTP访问。
主闪存阵列分为行rows和列columns。这些行包含2048位信息。对闪存和OTP的访问是三种类型之一:
1.Flash Memory Random Access 闪存随机存取
对2048位行的第一次访问被视为随机访问。
2.Flash Memory Paged Access 闪存分页访问
虽然对行的第一次访问被认为是随机访问,但同一行中的后续访问被称为分页访问。
可以通过对FBANKWAIT寄存器进行编程来配置随机访问和分页访问的等待状态数。
随机访问使用的等待状态数量由RANDWAIT位控制,而分页访问使用的等待状态数量由PAGEWAIT位控制。 FBANKWAIT寄存器默认为最坏情况下的等待状态计数,因此需要根据CPU时钟频率和闪存的访问时间初始化适当数量的等待状态,以提高性能。当PAGEWAIT位设置为零时,闪存支持0等待访问。假定CPU速度足够低以适应访问时间。要确定随机和分页访问时间要求,请参阅特定设备的数据手册。
3.OTP Access
对OTP的读取或读取访问由FOTPWAIT寄存器中的OTPWAIT位控制。对OTP的访问时间比闪存更长,并且没有分页模式。要确定OTP访问时间要求,请参见特定设备的数据手册。

使用Flash时要记住的其他几点:
•将忽略对闪存或OTP内存映射区域的CPU写入。它们在一个周期内完成。
•固定代码安全模块(CSM)后,从安全区域外部读取闪存/ OTP存储器映射区域的次数与普通访问次数相同。但是,读操作返回零。
•对CSM密码位置的读取被硬连线为16个等待状态。 PAGEWAIT和RANDOMWAIT位对这些位置没有影响。有关CSM的更多信息,请参见第1.2节。

1.1.3.2 Flash Pipeline Mode

闪存通常用于存储应用程序代码。在代码执行期间,除非发生中断,否则将从连续的存储器地址中提取指令。通常,代码中位于顺序地址中的部分构成了应用程序代码的大部分,被称为线性代码。为了提高线性代码执行的性能,已实现了闪存管线模式。默认情况下,禁用闪存管道功能。将FOPT寄存器中的ENPIPE位置1启用此模式。闪存管线模式独立于CPU管线。
从闪存或OTP提取的指令每次访问读取64位。从闪存访问的起始地址会自动与64位边界对齐,以使指令位置在要提取的64位之内。启用闪存流水线模式(见图1-2)后,将从指令提取中读取的64位存储在64位宽的2级深度指令预提取缓冲区中。然后,将该预取缓冲区的内容发送到CPU,以根据需要进行处理。
单个64位访问中最多可以驻留2条32位指令或4条16位指令。大多数C28x指令为16位,因此对于从闪存存储区中提取的每条64位指令,预取缓冲区中最多可能有多达4条指令准备通过CPU处理。在处理这些指令期间,闪存管道会自动启动对闪存存储区的另一次访问,以预取接下来的64位。以这种方式,闪存流水线模式在后台工作,以使指令预取缓冲区保持尽可能满。使用此技术,可以显着提高从闪存或OTP执行顺序代码的整体效率。

仅在由于执行分支,BANZ,调用或循环之类的指令而导致PC中断时,才会中断Flash管道的预取。
发生这种情况时,预取中止,刷新 flush 预取缓冲区的内容。发生这种情况有两种可能的情况:
1.如果目标地址在闪存或OTP内,则预取中止,然后在目标地址处恢复 resume。
2.如果目标地址不在闪存和OTP的范围内,则预取将中止并仅在跳转返回闪存或OTP时才重新开始。
Flash流水线预取机制仅适用于从程序空间program space取指令。从数据存储器data memory和程序存储器program memory读取的数据未利用预取缓冲区功能,因此绕过了预取缓冲区。例如,诸如MAC,DMAC和PREAD之类的指令从程序存储器中读取数据值。发生此读取时,将绕过预取缓冲区,但不会刷新该缓冲区。如果在启动数据读取操作时预取指令已经在进行中,则读取的数据将被暂停直到预取完成。

1.1.3.3 Reserved Locations Within Flash and OTP

将代码和数据分配给 allocate 闪存和OTP存储器时,请记住以下几点:
1.地址位置0x3F 7FF6和0x3F 7FF7保留用于输入Flash跳转指令branch instruction。
当使用从引导到闪存的启动选项时,引导ROM将跳到地址0x3F 7FF6。如果您在此处编写分支指令,则该分支指令会将代码执行重定向到应用程序的入口点。

2.从0x3F 7FF0到0x3F 7FF5的地址保留用于数据变量,并且不包含程序代码。

1.1.3.4 Procedure to Change the Flash Configuration Registers

在闪存配置期间,无法进行对闪存或OTP的访问。这包括仍在CPU管道中的指令,数据读取和指令预取操作。为确保在配置更改期间没有访问发生,对于修改FOPT,FPWR,FBANKWAIT或OTPWAIT寄存器的任何代码,都应遵循图1-3中所示的过程。

F28027-Flash介绍相关推荐

  1. BPI FLASH S29GL01GP、 S29GL512P、 S29GL256P、 S29GL128P NOR flash介绍,与FPGA代码编写(一)

    1.内部结构介绍:S29系列nor flash 内部是由多个扇区构成的,每个扇区容量大小相同,不同容量的flash其实就只是扇区数量不同,其他命令和时序是一样的.如下图: 2.引脚介绍 :A[25:0 ...

  2. ROM、RAM、IROM、IRAM、DRAM、SRAM、Flash介绍

    1 ROM .RAM.IROM.IRAM ROM:read only memory 只读存储器 ROM是指程序运行的过程中不能直接通过数据总线.地址总线进行数据的写操作,必须借助于相关的控制器接口来进 ...

  3. STM32F429的内部FLASH介绍

    1.STM32 的内部 FLASH 简介 在 STM32 芯片内部有一个 FLASH 存储器,它主要用于存储代码,我们在电脑上编写好应用程序后,使用下载器把编译后的代码文件烧录到该内部 FLASH 中 ...

  4. SPI 及 NOR Flash 介绍

    一.SPI 1.SPI的含义 SPI:串行外设设备接口(Serial Peripheral Interface),是一种高速的,全双工,同步的通信总线.SPI接口主要应用在存储芯片.AD转换器以及LC ...

  5. nand flash 介绍

    flash名称由来 Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次性地将一 ...

  6. 第十五课(1)Nor FLash原理及硬件介绍

    一.Flash介绍 - Nor NAND XIP(excute in place代码可以直接运行) Yes no 性能(擦除) 非常慢(5s) 快(3ms) 性能(写) 慢 快 性能(读) 快 快 可 ...

  7. Flask框架flash消息闪现学习与优化符合闪现之名

    Flask的flash 第一次知道Flask有flash这个功能时,听这名字就觉得高端,消息闪现-是跳刀blink闪烁躲技能的top10操作吗?可结果让我好失望,哪里有什么闪现的效果,不过是平常的消息 ...

  8. ESP32 通过NVS存储WiFi账号和密码至Flash

    前言 项目需求:在ESP32板子重启之后,自动从Flash中寻找已经存储好的WiFi账号和秘密,连接到网络. 要想能够很好的理解如何将WiFi的账号和密码如何写入到Flash的什么地方,首先需要了解下 ...

  9. NXP JN5169 读写片外 FLASH

    NXP JN5169 读写片外 FLASH 一.原理图 二.读写兼容的片外 FLASH 设备 三.读写不兼容的片外 FLASH 设备 一.原理图 二.读写兼容的片外 FLASH 设备 JN5169 片 ...

  10. STM32 SPI读写FLASH

    文章目录 一.SPI协议 1.物理层 2.协议层 总体讲解 具体讲解 二.STM32 SPI外设 1.通讯引脚 2.时钟控制逻辑 3.数据控制 4.整体控制逻辑 三.通信过程 四.固件库编程 1.结构 ...

最新文章

  1. 给Linux系统/网络管理员的nmap的29个实用例子
  2. MQTT连接阿里云IoT(四)
  3. unity读取Text
  4. cnn 一维时序数据_蚂蚁集团智能监控的时序异常检测:基于 CNN 神经网络的异常检测...
  5. HashMap Hashtable TreeMap的异同点
  6. Jquery Ajax方法传值到action
  7. Resources$NotFoundException
  8. python编程入门-编程零基础应当如何开始学习 Python?
  9. 问卷星指定内容批量自动填写的Python+Selenium+Pandas+Excel解决方案
  10. 鬼使神差的给宝宝办了大米的卡
  11. 信息学奥赛一本通 1947:【09NOIP普及组】细胞分裂 | 洛谷 P1069 [NOIP2009 普及组] 细胞分裂
  12. 寻声定位 matlab,春天里的小情趣
  13. 【爱思考】CISP证书有效期是几年,到期后怎么办
  14. 智能车八邻域图像算法_二
  15. 慢牛股票-基于Sencha touch+Cordova的股票类APP
  16. 实现一周之内自动登录的 cookie和session还有localStorage的存储机制
  17. FMG首席执行官被控误导股市
  18. 问题 C: Fraction 分数类 I
  19. URL编码和Base64编码
  20. 如何高效编写测试用例?【带模板、思维导图】

热门文章

  1. 如何提取文件名称到excel
  2. android天气预报sdk,Android全国天气预报SDK演示
  3. MES系统五大功能详解
  4. 互联网人才真的抢疯了,大家先冷静一下?
  5. linux字体操作,安装字体
  6. 同时在线用户人数怎么统计?
  7. Go Readers读取数据流
  8. ubuntu 下JAVA环境变量设置
  9. 鲍威尔c 语言程序,鲍威尔法编程-powell法编程 c语言编程 c++6.0
  10. 2021-07-14 串口 、并口、接口划分(UART、RS232、RS422、RS485、TTL、USB)