Andy_Mozzhevilov 0 10 сентября, 2006 Опубликовано 10 сентября, 2006 · Жалоба Имею плату от Olimex на LPC2148. Пытался запустить тестовый пример. С ходу не работал. После некторого времени возни и поиска ответов на извечные вопросы "кто виноват" и "что делать" виноватого нашел. Оказалось, что после рестарта таймеру 1 оказывается разрешен счет, разрешено прерывание. Хотя по ходу программы этого не делается. Зато по ходу программы разрешалось прерывание в VIC. И как следстивие - получалось периодическое падение системы. Разбираюсь дальше. Оказывается программа, зашитая во флэш виновата. То есть она запускается, начианает работать, включает нужную ей периферию, потом по jtag грузится мой новый софт и запускается, но полноценного ресета не происходит, то есть моя новая программа работает с периферией, которая настроена той, что во флэш. Переключаюсь на бутлоадер, делаю ресет, загружаю софт, все ок, таймер выключен. Вспоминаю, что это уже было раньше, тоже натыкался на такое поведение, но забыл за давностью и снова прошелся по таким же граблям. Что делать? Можно ли как-то так настроить систему, чтобы после загрузки и рестарта по jtag кристалл принимал значения по сбросу для всех регистров? А то по этим граблям надоело ходить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 10 сентября, 2006 Опубликовано 10 сентября, 2006 · Жалоба Можно ли как-то так настроить систему, чтобы после загрузки и рестарта по jtag кристалл принимал значения по сбросу для всех регистров? Скриптами (закладочка RDI->Init) через J-Tag после загрузки установить периферию в желаемое состояние. А вообще: - потереть Flash. - Не отлаживаться в RAM - все равно она скоро кончится :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 10 сентября, 2006 Опубликовано 10 сентября, 2006 · Жалоба Можно ли как-то так настроить систему, чтобы после загрузки и рестарта по jtag кристалл принимал значения по сбросу для всех регистров? Скриптами (закладочка RDI->Init) через J-Tag после загрузки установить периферию в желаемое состояние. Думал об этом, но у кажного чипа своя периферия. Можно конечно, прописать. Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается? Как я понял, в процессе загрузки кристалл все же несколько раз из флэша рестартует, на разных этапах. А вообще: - потереть Flash. - Не отлаживаться в RAM - все равно она скоро кончится :-) В RAM удобно начинать заводить чип. Когда код еще не очень большой и лезет туда, а загрузка проходит значительно быстрее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 10 сентября, 2006 Опубликовано 10 сентября, 2006 · Жалоба Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается? Все нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 10 сентября, 2006 Опубликовано 10 сентября, 2006 · Жалоба Потом, это происходит в нужный момент, то есть после этого уже связь jtag не обрывается? Как я понял, в процессе загрузки кристалл все же несколько раз из флэша рестартует, на разных этапах. Полноцнный ресет (дерганьем ногой) ИАР делает только один раз - при старте отладчика. Ето прописано мелкими буквами в хелпе. После этого кнопка "ресет" сбрасывает только ядро. Скрипты можно дописать в ExecUserReset, тогда они будут делать инициализацию при нажатии на иконку "ресет". Маленькая проблема в том, что не всю периферию можно проинитить в исходное состояние даже скриптами :-( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 10 сентября, 2006 Опубликовано 10 сентября, 2006 · Жалоба Короче - при отладке из RAM cтереть Flash и не маяться с проблемами созданными на ровном месте и главное с размышлениями на тему "есть ли из-за этого проблемы". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться