A microprocessor based system automatically detects the occurrence of
certain conditions in the microprocessor. The conditions may include a
determination of data corruption in the microprocessor. If a
determination is made that data is corrupted, the microprocessor may be
reloaded from a non-volatile memory. During a reload, a microcontroller
controls the microprocessor. The non-volatile memory may be a flash
memory or non-volatile random access memory.