Patent ID: 8683457

Claim:
A method of operating an electronic device, the electronic device comprising a non-volatile memory comprising: first and second distinct versions of a control program (CP); a first header comprising a first version identifier (VID) identifying the first version of the CP and a first VID check code generated based at least in part on the first VID; and a second header comprising a second VID identifying the second version of the CP and a second VID check code generated based at least in part on the second VID; and the method comprising: generating a first validation VID check code based at least in part on the first VID; reading the first VID from the first header; determining whether the first validation VID check code matches the first VID check code from the first header to verify the validity of the first VID; generating a second validation VID check code based at least in part on the second VID; reading the second VID from the second header; determining whether the second validation VID check code matches the second VID check code from the second header to verify the validity of the second VID; when the first and second VIDs are valid, selecting a version between the first version and the second version of the CP based at least in part on the first and second VIDs; generating a validation CP check code based at least in part on the selected version of the CP; when the validation CP check code matches the CP check code of the selected version of the CP, executing the selected version of the CP; and erasing the non-selected version of the CP from the non-volatile memory and invalidating the header of the non-selected version.