Миландр. Error: Flash Download falied - "Cortex-M3"

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

Cover Image

Если вы когда либо писали прошивку для Миландра, то наверняка сталкивались с подобной проблемой.

По сути это не совсем проблема, а некоторая особенность. Более подробное описание можно найти на официальном форуме, а возможно и в 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(;;);
}

Теперь имеем нормальное сообщение при прошивке и рабочую отладку.