Сейчас попробовал следующий вариант:
-Полностью очистил флэш
- Записал программу с адреса 0х0.
Все работает отладчик отлаживает(использую SWD), на кварце генерация есть. Все работает.
Затем просто меняю адрес в настройках проекта. Ставлю например 0х1000. Компилирую.
Пытаюсь запустить debug сессию - и все. Программа прошивается, верифицируется и появляется надпись :
SWD Communication Failure.
На этом все заканчивается, сессия конечно не запускается. Следовательно, посмотреть как стартует программа не получается.
Попробовал запустить в симуляторе. Там видно что программа крутится в адресе 0х00000000 и не уходит из него.
В обще в окне дизассеблера, первая строка:
Код
0x00000000 0000 MOVS r0,r0
А если адрес в настройках проекта оставить 0х0, то первая инструкция получается:
Код
0x00000000 0670 DCW 0x0670
И видно, что программа идет дальше и пытается конфигурировать PLL.
В общем наблюдается следующая картина. Если указать, что адрес программы должен начинаться с 0х10, то в окошке дизассемблера адреса с 0х0 по 0хЕ забиты одними и теме же инструкциями:
Код
0x00000000 0000 MOVS r0,r0
Но с адреса 0х0 программа не уходит...
Такое ощущение, что какого-то перехода просто не хватает, типа RJMP на нужный адрес...
Сообщение отредактировал IgorKossak - May 13 2013, 07:10
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!