Гость serzh_5 Опубликовано 2 Августа, 2012 в 03:46 Жалоба Поделиться Опубликовано 2 Августа, 2012 в 03:46 Зравствуйте. Создавая большие массивы чисел, для вывода изображения на дисплей, обнаружил интересную штуку. Если в массив констант записать длинную последовательность 0хFF, то МК прошивается, но не проходит верефикацию и в массиве в итоге оказаваются другие числа. Если же длинных последовательностей 0хFF нет, то верефикация проходит и числа в массиве те которые записывал. С чем это может быть сязано? Я пробывал прошивать AVRProg и CodeVisionAVR. Прогроматор AVR910 от PROTTOSS. Грешу на процес програмирования, может увидев длинную последовательность 0хFF програматор решает что это конец? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость hsl Опубликовано 2 Августа, 2012 в 04:21 Жалоба Поделиться Опубликовано 2 Августа, 2012 в 04:21 (изменено) Не знаю тот же это глюк или нет, но было у меня такое, что в EEPROM данные записывались не правильно. В моем случае это было когда FLASH и EEPROM прошивал одним файлом *.rom. При раздельной прошивке глюка не наблюдалось, прошивал из CodeVisionAVR. Изменено 2 Августа, 2012 в 04:22 пользователем hsl Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость serzh_5 Опубликовано 2 Августа, 2012 в 06:40 Жалоба Поделиться Опубликовано 2 Августа, 2012 в 06:40 Врятли это этот глюк. Я прошиваю только FLASH. Попробывал прошить с помощью PonyProg и LPT программатора, массив успешно записался. Думаю этот глюк связан с особеностями программирования AVR910, только вот с какими? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость prottoss Опубликовано 2 Августа, 2012 в 13:22 Жалоба Поделиться Опубликовано 2 Августа, 2012 в 13:22 Дело не в программаторе. Программатор ничего не решает. Программатор всего лишь получает команду на запись флэш-памяти или EEPROM и ничего более. Он не проверяет биты-байты, которые он записывает в МК. Он берет блок данных, полученный от приложения на РС, и пишет его в МК. Наверняка у Вас в программе программирования не установлена галка на чем то типа "Erase FLASH before programming" или по русски - "Стереть флэш перед программированием". Флэш память устроена так, что, при программировании, возможно перевести бит из "1" в "0", но не обратно. По этому есть команда стирания, которая как раз и занимается обратным, по этому после выполнения команды "erase" все ячейки флэш-памяти МК переводятся в значение 0xFF, т.е. все биты устанавливаются в "1", за тем уже выполняется программирование. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость serzh_5 Опубликовано 2 Августа, 2012 в 14:44 Жалоба Поделиться Опубликовано 2 Августа, 2012 в 14:44 (изменено) prottoss, ваша версия не подтверждается, я стёр МК (кнопкой Chip Erase ) и попробывал прошить, результат опять тотже. Под управлением AVRDUDE, AVR910 нормально прошил МК. Так что дело в программах-программаторах AVRProg и CodeVisionAVR, интересно что с ними не так.. Изменено 2 Августа, 2012 в 17:45 пользователем serzh_5 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти