SM, про USER CODE согласен. Красивое, оптимальное решение, особенно - обход security bit'а. Подойдёт для крупных серий, где прошивка сто раз проверифицируется и в единственном(!) экземпляре будет передана в производство.
А вот если прошивка находится в постоянном развитии - то один что-то подправит, то другой, прошивка "живёт своей жизнью"... Может случиться так, что под одним User Code'ом будет существовать несколько релизов. Человеческий фактор и ничего с ним не поделаешь, к сожалению.
Поэтому сличение всей прошивки целиком более показательно с точки зрения надёжности. Хотя: от секретности отказываемся сразу, время старта системы увеличиваем, объём кода тоже...
Бывает, что и через зад автогеном приходится: да, сложнее, но при желании и до гланд добраться можно
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)