Я обычно обвешиваю зашивку всякой ерундой типа серийного номера и контрольной суммы. При запуске - проверяю целостность. Если есть отдельный бутлоадер, то ему не плохо было бы при запуске проверять целостность основной программы. Тогда при любом сбое опять запустится бутлоадер.