Перейти к содержанию
    

если мне склероз не изменяет, то все в апнотах Атмела как раз наоборот было сказано - включать оптимизацию, чтобы код был наиболее коротким, чтобы между записями не было промежуточных команд,

Наверное лучше реализовать функции запрета/разрешения WDT на ассемблере.

 

 

Загрузчик выключает WDT.

А ваша программа его включить не может, получается?

 

ATmega88.

В ATmega88 WDT работает несколько иначе, чем в ATmega64.

На работу WDT влияет состояние флага MCUCSR.WDRF. В вашем буте это как-то учтено?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, реализованно на ассемблере. Иначе при компиляции с оптимизацией по размеру

не уложиться в 4 такта.

С флагами, настройками все в порядке. Проверено временем.

Так что типа не так настроил - здесь не проходит. Все строго по даташиту.

Проблема когда загрузчик + компиляция с оптимизацией по размеру.

В остальном все гладко. Не было б загрузчика не было б проблем.)))

В место RESET я получаю зависание. А должен попасть на начало загрузчика.

 

 

Что учтено в буте не известно. Бут закрыт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так сравни два асм кода с разными оптимизациями и именно то что относится к WDT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ж говорю, при любой оптимизации работает если шить программатором.

В чем смысл сравнения?

Повторюсь.

Память aplication залитая программатором или загрузчиком идентична. (сверена после программирования)

В варианте когда загрузчиком, если изменить фьюс BOOTRST при котором

старт начнется с нулевого адреса а не с адреса загрузчика, все работает не

зависимо от того какой оптимизации файл залит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что учтено в буте не известно. Бут закрыт.

Может свой бут написать? Чтоб было известно, что там учтено.

 

все работает не

зависимо от того какой оптимизации файл залит.

А что именно не работает после "программного сброса", если первым стартует бут? Как выглядит поведение программы? В чём отличие от таго как должно быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

После "программного сброса" ничего не работает. (Если вектор сброса указан на загрузчик и оптимизация по размеру. Писал в самом начале.) Ни бут, ни рабочее приложение. Конкретный висюн.

У меня в проге реализован механизм аварийного сброса из зависания если где в проге косяк.

Он использует внешнее прерывание от кнопки а в самой пп обработки прерывания запускается

WDR на RESET. Так и это не помогает выйти из висюна. То есть попытка использовать WDR

для сброса аварийного и сброса рабочего не дает желаемого результата.

 

Писать свой бут пока нет смысла. Это один случай из мно-ва других безпроблемных. Если

припрет, то напишем бут. Проблему можно обойти если взять мегу с большей памятью и забить на размер кода. Ведь с оптимизацией по скорости все пучком. Но хочется не обойти, а решить!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мож где при инициализации оборудования оптимизатор вместо ldi/out использует sbi, что оставляет часть битов "по умолчанию", что после софтового сброса и приводит к проблемам?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ж говорю, при любой оптимизации работает если шить программатором.

В чем смысл сравнения?

Вы шьёте программатром, как я понимаю нет. Вы хотите разобраться почему одна из оптимизаций не работает в варианте с boot , так берите код asm и сравнивайте что компилятор изменил в загрузчике для обеих оптимизациях

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...