Миландр. Error: Flash Download falied - "Cortex-M3"
Решаем проблему с ошибкой загрузки прошивки в микроконтроллер Миландр. Error: Flash Download falied - "Cortex-M3"

Если вы когда либо писали прошивку для Миландра, то наверняка сталкивались с подобной проблемой.
По сути это не совсем проблема, а некоторая особенность. Более подробное описание можно найти на официальном форуме, а возможно и в erata. Я же покажу путь её решения.
Как проявляется проблема.
Вы написали код, скомпилировали и пытаетесь его прошить. Идёт процесс загрузки кода в чип, все хорошо, а затем верификация и вы получаете в окне Build Output
сообщение об ошибках, да ещё и вываливается окно как на картинке выше.
Full Chip Erase Done.
Programming Done.
Contents mismatch at: 08000000H (Flash=7BH Required=28H) !
Contents mismatch at: 08000001H (Flash=F3H Required=30H) !
Contents mismatch at: 08000002H (Flash=FFH Required=00H) !
Contents mismatch at: 08000003H (Flash=FFH Required=20H) !
Verify Failed!
Error: Flash Download failed - "Cortex-M3"
Flash Load finished at 15:00:26
Первое что приходит на ум, что записалось не то, что нужно. Хотя железяка работает. Всё бы ничего, но только и в отладку зайти не получается. Теперь следующая мысль: "Так если всё работает, может дело в том что просто кривая верификация и её нужно отключить?" Нет. На много лучше бедт не заниматься мазахизмом и не капать себе яму на будущее, а решить проблему.
Решение до банальности простое.
Нужно в начало функции main
включить нельшую задержку и проблема решиться.
void delayTick( uint32_t count)
{
while (count--);
}
int main (void )
{
delayTick( 0xFFFF );
/// ДАЛЕЕ ПОЛЬЗОВАТЕЛЬСКИЙ КОД
for(;;);
}
Теперь имеем нормальное сообщение при прошивке и рабочую отладку.