Look-up Table
该设备总共由64个LUT寄存器组成,这64个寄存器分为四组,组成一个有效序列。 每个序列基本上是一系列指令操作数对,当顺序执行时,它们生成有效的串行闪存事务。
每个序列最多可以有8个指令操作数对。 LUT最多可以容纳16个序列。
因此,qspi-lut[0]、qspi-lut[4]、qspi-lut[8]到qspi-lut[60]是有效序列的起始寄存器。
这四组寄存器中的每一个最多可以有八条指令,这有助于加速运行保存在查找表中的命令。查找表一些功能包括:
•每个指令操作数单元宽16位。
•根据qspi事务的复杂性,序列可能由单个指令操作数集或其中几个操作数集组成。
•写入ipcr[seqid]会触发指定序列的执行。
•从AHB内存映射的QSPI区域读取会触发执行bfgencr[seqid]字段上指定的序列。查找表或LUT由许多预编程序列组成。
下图显示了LUT中序列的基本结构。
复位时,查找表的索引0(lut[0..3])用表36-21中给出的基本读取顺序进行编程。
重置后lut,可根据板上连接的设备对整个LUT重新编程。为了在代码运行期间保护其内容,可以锁定LUT,在此之后,对LUT的写入将不会成功,除非再次解锁。
锁定或解锁LUT的钥匙是0x5AF05AF0。锁定和解除锁定LUT的过程如下:
- Locking the LUT
1.将密钥(0x5AF05AF0)写入LUT密钥寄存器(Quadspi-Lut Key)。
2.第二步。将0b01写入LUT锁配置寄存器(quadspi_lckcr)。
请注意,此IPS事务应立即遵循上述IPS事务(在两者之间不能发出其他IPS事务)。成功写入此寄存器将锁定LUT。1.将密钥(0x5AF05AF0)写入LUT密钥寄存器(Quadspi-lut Key)
2.第二步。将0b10写入LUT锁配置寄存器(quadspi_lckcr)。
请注意,此IPS事务应立即遵循上述IPS事务(在两者之间不能发出其他IPS事务)。成功写入此寄存器将解锁LUT。LUT的锁状态可以从qspi_lckcr[unlock]和qspi_lckcr[lock]位读取。
在示例序列中定义了一些示例序列。
下表给出了LUT索引0处的重置顺序。
- Unlocking the LUT