4 Swap steps

4.1 Swap procedure

The procedure for swapping the flash blocks is simple. The same procedure for swapping back and forth between the blocks is used.

4.1.1 First swap

1.首先通过发出初始化命令初始化系统。首次执行交换时,只需执行一次此步骤。首次初始化时,交换系统会直接进入更新已擦除。
2.擦除非活动(交换)块。
3.用软件重新编程非活动(交换)块。
4.发出命令将系统设置为完成状态。交换将在复位后生效(包括软件重置)。
5.复位后,块被交换,交换系统在就绪状态下出现。

4.1.2 Procedure for additional swaps

第一次交换完成后,进程从就绪状态开始。
1.发出命令将系统设置为更新状态。
2.擦除非活动(交换)块。一旦擦除完成,系统将自动移至更新擦除状态。
3.重新编程非活动块中的软件。
4.发出命令将系统设置为完成状态。
5.重置微控制器(包括软件重置在内的任何重置)。

6.复位后,块被交换,交换系统在就绪状态下出现。

4.2 Erasing the nonactive upper block

您可以使用块擦除或扇区擦除。 它只是特别需要擦除非活动块中的闪存交换指示符扇区。 但是,要更新非活动块中的软件,必须先删除它。 擦除完成后,系统将自动移至更新擦除状态。

在块之间进行切换而不擦除/重新编程整个非活动块是可能的。 您只需用闪存交换指示器擦除扇区(处于更新状态时)。 这对于交换回非活动块中的已知良好应用程序非常有用。

4.3 Order of the steps(操作建议)

飞思卡尔建议,当交换系统处于更新擦除状态且系统移至完成状态之前,将新代码上载到非活动(交换)块。 因此,如果在此过程中出现电力损失,交换系统会知道它正在更新,并且应该恢复到以前的已知良好的交换状态。

闪存交换命令选项的发出顺序非常重要。 命令选项不能按顺序发出,否则可能发生错误。 详情请参阅错误处理部分。

4.4 Summary of typical procedure to swap (after the first swap)

1.检查状态
2.准备 - >更新
3.擦除上面的块(或仅在非活动上部块中具有闪存交换指示符的扇区)
4.更新 - >更新 - 擦除(自动)
5.重新编程上块 - 检查上块的内容(编程时跳过交换指示器的位置)
6.交换更新 - 擦除 - >完成
7.重置

8.完成 - >就绪(自动)

猜你喜欢

转载自blog.csdn.net/l3142600073/article/details/80697555