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

В массив констант записать длинную последовательность 0хFF


Рекомендуемые сообщения

Зравствуйте. Создавая большие массивы чисел, для вывода изображения на дисплей, обнаружил интересную штуку. Если в массив констант записать длинную последовательность 0хFF, то МК прошивается, но не проходит верефикацию и в массиве в итоге оказаваются другие числа. Если же длинных последовательностей 0хFF нет, то верефикация проходит и числа в массиве те которые записывал. С чем это может быть сязано? Я пробывал прошивать AVRProg и CodeVisionAVR. Прогроматор AVR910 от PROTTOSS. Грешу на процес програмирования, может увидев длинную последовательность 0хFF програматор решает что это конец?

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

Не знаю тот же это глюк или нет, но было у меня такое, что в EEPROM данные записывались не правильно. В моем случае это было когда FLASH и EEPROM прошивал одним файлом *.rom. При раздельной прошивке глюка не наблюдалось, прошивал из CodeVisionAVR.

Изменено пользователем hsl
Ссылка на комментарий
Поделиться на другие сайты

Врятли это этот глюк. Я прошиваю только FLASH.

 

Попробывал прошить с помощью PonyProg и LPT программатора, массив успешно записался. Думаю этот глюк связан с особеностями программирования AVR910, только вот с какими?

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

Дело не в программаторе. Программатор ничего не решает. Программатор всего лишь получает команду на запись флэш-памяти или EEPROM и ничего более. Он не проверяет биты-байты, которые он записывает в МК. Он берет блок данных, полученный от приложения на РС, и пишет его в МК.

Наверняка у Вас в программе программирования не установлена галка на чем то типа "Erase FLASH before programming" или по русски - "Стереть флэш перед программированием". Флэш память устроена так, что, при программировании, возможно перевести бит из "1" в "0", но не обратно. По этому есть команда стирания, которая как раз и занимается обратным, по этому после выполнения команды "erase" все ячейки флэш-памяти МК переводятся в значение 0xFF, т.е. все биты устанавливаются в "1", за тем уже выполняется программирование.

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

prottoss, ваша версия не подтверждается, я стёр МК (кнопкой Chip Erase ) и попробывал прошить, результат опять тотже.

 

Под управлением AVRDUDE, AVR910 нормально прошил МК. Так что дело в программах-программаторах AVRProg и CodeVisionAVR, интересно что с ними не так..

Изменено пользователем serzh_5
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...