Цитата(Мария Е @ Aug 22 2014, 13:26)

в debug режиме watchdog выключен.
А вот это может означать, что он остановливается только когда ядро остановлено отладчиком и продолжает тикать, как только ядро начинает исполнять команды. Но раз вы попадаете в ResetHandler только один раз при запуске - версия с собакой отпадает.
Цитата(Мария Е @ Aug 22 2014, 13:26)

курсор прыгает на начало main в отладке, а следующим шагом на строку,
Откройте окно дизассемблера и посмотрите, по каким ассемблерным командам ходит ваша программа. Не всем ассемблерным командам можно найти соответствующие места в исходнике на языке высокого уровня. Бывает, что одна команда ассемблера соответствует сразу нескольким строчкам в разных местах исходника (например, если в функции есть несколько выражений return 0 - компилятор может их реализовать его одном месте, а из остальных сделать перход на этот код, или вынести некий общий код в подпрограмму). В общем, вам дорога прямиком в дизассемблер.