Имею плату от Olimex на LPC2148. Пытался запустить тестовый пример. С ходу не работал. После некторого времени возни и поиска ответов на извечные вопросы "кто виноват" и "что делать" виноватого нашел. Оказалось, что после рестарта таймеру 1 оказывается разрешен счет, разрешено прерывание. Хотя по ходу программы этого не делается. Зато по ходу программы разрешалось прерывание в VIC. И как следстивие - получалось периодическое падение системы. Разбираюсь дальше. Оказывается программа, зашитая во флэш виновата. То есть она запускается, начианает работать, включает нужную ей периферию, потом по jtag грузится мой новый софт и запускается, но полноценного ресета не происходит, то есть моя новая программа работает с периферией, которая настроена той, что во флэш. Переключаюсь на бутлоадер, делаю ресет, загружаю софт, все ок, таймер выключен. Вспоминаю, что это уже было раньше, тоже натыкался на такое поведение, но забыл за давностью и снова прошелся по таким же граблям. Что делать? Можно ли как-то так настроить систему, чтобы после загрузки и рестарта по jtag кристалл принимал значения по сбросу для всех регистров? А то по этим граблям надоело ходить.
--------------------
Пасу котов...
|