NOR Boot是一种启动模式,它指的是当芯片上电时,芯片从NOR Flash的起始位置开始取代码执行。在NOR Flash的开头处,通常存储着8个向量表,其中包含了用于引导系统的指令。这些指令中的b reset是一个相对跳转指令,意味着不论代码在哪里运行,都可以跳转到该位置。
1 特点
NOR 启动具有一些显著特点,例如支持x8异步闪存设备,密度可高达256Mb,以及具有原位执行选项。这意味着代码可以在NOR Flash中直接执行,无需先将其加载到RAM中,从而提高了启动速度。
NOR Boot具有以下特点:
• x8异步闪存设备
• 密度高达256Mb
• 原位执行选项
BootROM不会尝试对NOR闪存设备进行任何配置检测。当NOR被选为引导设备时,BootROM会按照表6-13所示对MIO引脚进行编程。
请注意:在7z010双核和7z007s单核CLG225设备中,NOR接口不可用。
NOR Boot通常用于需要高速代码执行和随机访问的应用中。由于NOR闪存可以直接在闪存内执行代码,因此无需将其内容复制到RAM中,这提高了启动速度。同时,它的高密度特性也使其能够存储更多的数据和程序。
2 I/O信号时序
BootROM在smc.SET_CYCLES寄存器中使用了以下NOR时序值:
• we_n(写使能信号)在cs_n(芯片选择信号)之后2个时钟周期开始断言。
• t_ta=1:地址设置到写使能时间(Address Setup to Write Enable time),指的是从地址信号稳定到写使能信号we_n开始有效的时间间隔。在这里,t_ta=1表示地址设置后1个时钟周期,写使能信号we_n开始有效。
• t_pc=2:页周期时间(Page Cycle time),代表连续两次写或读操作的地址或命令变化之间的最小时间间隔。t_pc=2意味着在进行下一次写或读操作之前,地址或命令需要保持稳定至少2个时钟周期。
t_wp=5:写脉冲宽度(Write Pulse Width),表示写使能信号we_n保持有效的时间。t_wp=5,意味着写使能信号需要保持激活状态5个时钟周期。
t_ceoe=2:芯片使能到输出使能时间(Chip Enable to Output Enable time),指的是从芯片使能信号ce_n变为有效到输出使能信号oe_n开始有效的时间间隔。t_ceoe=2表示芯片使能信号激活后,输出使能信号需要等待2个时钟周期才开始有效。
t_wc=7:写周期时间(Write Cycle time),包括命令、地址和数据的传输,以及必要的等待时间,完成一个完整的写操作所需的总时间。在这里,t_wc=7,意味着整个写操作需要7个时钟周期。
t_rc=7:读周期时间(Read Cycle time),即从发出读命令到数据稳定可用的总时间,包括命令和地址的传输,以及数据的读取。t_rc=7表示完成一个读操作需要7个时钟周期。
这些时序值的设置对于确保NOR Flash与BootROM之间的正确通信至关重要。它们定义了芯片操作的关键阶段所需的时间,从而避免数据冲突、丢失或时序违规等问题。
3 启动时间优化
为了改进NOR Boot的启动时间,可以提高时钟频率,并通过设置表6-14中列出的寄存器来优化I/O协议。请注意,示例中的值可能并不适用于所有NOR设备或板卡布局,也并非最优设置。这些设置假设使用的是33 MHz的PS_CLK。如果使用了更快的时钟,则需要考虑使用更大的分频器。
在优化启动时间时,有几个关键的考虑因素:
时钟频率:提高时钟频率可以加快数据传输速度,但也需要确保NOR Flash设备能够支持更高的时钟速率。
I/O协议优化:通过调整寄存器设置,可以优化I/O协议,减少数据传输的延迟和开销。这可能包括调整读/写周期、页周期等时序参数。
板卡布局和硬件配置:不同的板卡布局和硬件配置可能对启动时间产生影响。因此,在实际应用中,需要根据具体的硬件环境进行相应的调整和优化。
稳定性与兼容性:在追求启动时间优化的同时,还需要确保系统的稳定性和兼容性。过高的时钟频率或不当的寄存器设置可能导致数据错误或系统不稳定。