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.完成 - >就绪(自动)