TO SasaVitebsk: подробно перечитал ваш пост, отчитываюсь о прочитанном: >> Есть птица, в настройках которая говорит, что стартовать надо с 0 адреса. В противном случае, стандартная иаровская инициализация процессора проскакивает незаметно для глаза пользователя.
с птицей разобрался
>> Теперь по вылету. Возможно у вас по WDT не на 0 стартует? Да вроде с 0, а куда ей еще деваться? Я использую стандартный стастап файл и в программе ничего лишнего вроде не делаю.
>> Посмотрите для любопытства в даташите, как вектор 0х18 обзывается? понятно как он обзывается, не совсем понятно куда вы клоните (ну вот такой недогоняющий я, просто начинающий), прерывание от WDT я не использую.
вообще я вспомнил, что когда только перешел с меги 128 на 2560, был удивлен, что после сброса по watchdog, флаг WDE в watchdog не сбрасывается, т.е. он продолжает работать и снова ресетит контроллер (естественно я проверил, что соответствующий fuse выключен), пришлось в main первой строкой прописать остановку watchdog (Для сравнения - в меге 128 после сброса по watchdog, флаг WDE в watchdog сбрасывается сам, да так и должно быть).
>> Почитайте описание на компилятор Читаю, понял, что мне в стартап нужно добавить свой код по остановке watchdog. Только как это сделать? Пишут, что нужно редактировать __low_level_init. Но как? В cstartup есть вызов XCALL __low_level_init, в src\ есть файл low_level_init.c. Что с этим делать?
В опциях проекта в IAR нигде не нашел ни слова про стартап.
SasaVitebsk, я очень ценю ваше внимание к моему посту. Поделитесь еще опытом, потыкайте - как копать?
|