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

AVR/IAR/Самопрограммирование и "SoftReset"

Устройство имеет бутлоадер, который умеет самопрограммировать флеш память (AVRMega64a).

Бутлоадер расположен в верхних адресах, основная программа - в начале области памяти программ.

 

Основная программа получает прошивку по некоторому каналу связи и записывает прошивку во внешнюю EEPROM память. Проверяет ее целостность и рестартует процессор watchdog-ом. Управление получает бутлоадер. Он самопрограммирует AVRMega данными из внешней EEPROM. Но к сож. некорректно. Я вычитываю флеш память и вижу несоответствие данных из ЕЕПРОМ и собственно того что у меня в дампе памяти.

В то же самое время если рестартовать процессор аппаратно, то все так как и ожидается: самопрограммирование проходит успешно и все данные точно соответствуют информации в ЕЕПРОМ. Фьюзы настроены, биты совместимости установлены. Если бы не этот момент, то все бы вполне себе устраивало

 

Я понимаю, что связано это скорее всего с инициализацией периферии, но пока не могу понять в чем моя ошибка. Еще нужно отметить, что в софтрестарт уходит процессор после работы основной программы и соответственно нужно учитывать и ее этапы по работе с периферией..

 

Выслушаю любые соображения на данный счет, спасибо!

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


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

Разобрался :rolleyes:

Нужно сначала чистить/стирать флеш память, и только потом писать.

   
for (address = 0; address < FWsize; address += PAGESIZE) {
     _WAIT_FOR_SPM();        
     _PAGE_ERASE(address);
}

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


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

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

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

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

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

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

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

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

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

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