
CHAPTER 25 FLASH MEMORY
User’s Manual U19780EJ2V0UD
610
25.8.1 Boot swap function
If rewriting the boot area has failed during self-programming due to a power failure or some other cause, the data
in the boot area may be lost and the program may not be restarted by resetting.
The boot swap function is used to avoid this problem.
Before erasing boot cluster 0
Note
, which is a boot program area, by self-programming, write a new boot program to
boot cluster 1 in advance. When the program has been correctly written to boot cluster 1, swap this boot cluster 1 and
boot cluster 0 by using the set information function of the firmware of the 78K0/Kx2-A microcontrollers, so that boot
cluster 1 is used as a boot area. After that, erase or write the original boot program area, boot cluster 0.
As a result, even if a power failure occurs while the boot programming area is being rewritten, the program is
executed correctly because it is booted from boot cluster 1 to be swapped when the program is reset and started next.
If the program has been correctly written to boot cluster 0, restore the original boot area by using the set
information function of the firmware of the 78K0/Kx2-A microcontrollers.
Note
A boot cluster is a 4 KB area and boot clusters 0 and 1 are swapped by the boot swap function.
Boot cluster 0 (0000H to 0FFFH): Original boot program area
Boot cluster 1 (1000H to 1FFFH): Area subject to boot swap function
Caution When executing boot swapping, do not use the E.P.V command with the dedicated flash memory
programmer.
Figure 25-14. Boot Swap Function
Boot program
(boot cluster 0)
New boot program
(boot cluster 1)
User program
Self programming
to boot cluster 1
Self programming
to boot cluster 0
Executing boot
swapping by firmware
Executing boot
swapping by firmware
User program
Boot program
(boot cluster 0)
User program
New boot program
(boot cluster 1)
New boot program
(boot cluster 0)
User program
New boot program
(boot cluster 1)
New boot program
(boot cluster 0)
User program
New boot program
(boot cluster 1)
Boot program
(boot cluster 0)
User program
X X X X H
X X X X H
2 0 0 0 H
0 0 0 0 H
1 0 0 0 H
2 0 0 0 H
0 0 0 0 H
1 0 0 0 H
Boot
Boot
Boot
Boot
Boot
Remark
Boot cluster 1 becomes 0000H to 0FFFH when a reset is generated after the boot flag has been set.