Артём__ 0 14 февраля, 2013 Опубликовано 14 февраля, 2013 · Жалоба если мне склероз не изменяет, то все в апнотах Атмела как раз наоборот было сказано - включать оптимизацию, чтобы код был наиболее коротким, чтобы между записями не было промежуточных команд, Наверное лучше реализовать функции запрета/разрешения WDT на ассемблере. Загрузчик выключает WDT. А ваша программа его включить не может, получается? ATmega88. В ATmega88 WDT работает несколько иначе, чем в ATmega64. На работу WDT влияет состояние флага MCUCSR.WDRF. В вашем буте это как-то учтено? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
art07 0 14 февраля, 2013 Опубликовано 14 февраля, 2013 · Жалоба Да, реализованно на ассемблере. Иначе при компиляции с оптимизацией по размеру не уложиться в 4 такта. С флагами, настройками все в порядке. Проверено временем. Так что типа не так настроил - здесь не проходит. Все строго по даташиту. Проблема когда загрузчик + компиляция с оптимизацией по размеру. В остальном все гладко. Не было б загрузчика не было б проблем.))) В место RESET я получаю зависание. А должен попасть на начало загрузчика. Что учтено в буте не известно. Бут закрыт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 14 февраля, 2013 Опубликовано 14 февраля, 2013 · Жалоба Ну так сравни два асм кода с разными оптимизациями и именно то что относится к WDT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
art07 0 14 февраля, 2013 Опубликовано 14 февраля, 2013 · Жалоба Я ж говорю, при любой оптимизации работает если шить программатором. В чем смысл сравнения? Повторюсь. Память aplication залитая программатором или загрузчиком идентична. (сверена после программирования) В варианте когда загрузчиком, если изменить фьюс BOOTRST при котором старт начнется с нулевого адреса а не с адреса загрузчика, все работает не зависимо от того какой оптимизации файл залит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 14 февраля, 2013 Опубликовано 14 февраля, 2013 · Жалоба Что учтено в буте не известно. Бут закрыт. Может свой бут написать? Чтоб было известно, что там учтено. все работает не зависимо от того какой оптимизации файл залит. А что именно не работает после "программного сброса", если первым стартует бут? Как выглядит поведение программы? В чём отличие от таго как должно быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
art07 0 15 февраля, 2013 Опубликовано 15 февраля, 2013 · Жалоба После "программного сброса" ничего не работает. (Если вектор сброса указан на загрузчик и оптимизация по размеру. Писал в самом начале.) Ни бут, ни рабочее приложение. Конкретный висюн. У меня в проге реализован механизм аварийного сброса из зависания если где в проге косяк. Он использует внешнее прерывание от кнопки а в самой пп обработки прерывания запускается WDR на RESET. Так и это не помогает выйти из висюна. То есть попытка использовать WDR для сброса аварийного и сброса рабочего не дает желаемого результата. Писать свой бут пока нет смысла. Это один случай из мно-ва других безпроблемных. Если припрет, то напишем бут. Проблему можно обойти если взять мегу с большей памятью и забить на размер кода. Ведь с оптимизацией по скорости все пучком. Но хочется не обойти, а решить! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RabidRabbit 0 15 февраля, 2013 Опубликовано 15 февраля, 2013 · Жалоба Мож где при инициализации оборудования оптимизатор вместо ldi/out использует sbi, что оставляет часть битов "по умолчанию", что после софтового сброса и приводит к проблемам? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 15 февраля, 2013 Опубликовано 15 февраля, 2013 · Жалоба Я ж говорю, при любой оптимизации работает если шить программатором. В чем смысл сравнения? Вы шьёте программатром, как я понимаю нет. Вы хотите разобраться почему одна из оптимизаций не работает в варианте с boot , так берите код asm и сравнивайте что компилятор изменил в загрузчике для обеих оптимизациях Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
art07 0 15 февраля, 2013 Опубликовано 15 февраля, 2013 · Жалоба Загрузчик не компилирую. Он изначально есть только в hex. Исходника нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться