реклама на сайте
подробности

 
 
> MEGA8 самопрограммирование, Кто с этим работал
Juk1976
сообщение Aug 10 2005, 22:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-08-05
Из: Украина Винница
Пользователь №: 7 258



Задача - записать через СОМ-порт данные в память программ. blush.gif

Как я читал - можно небольшой кусок бросить в BOOT и он каким-то образом сможет программировать (писать) FLASH. В нормальной программе выскакивает ошибка TA0015 - запрет записи в FLASH. huh.gif

Один из вариантов - в памяти две программы. одна работает нормально, другая - стартует по команде по COMу и может ДОписывать данные в FLASH (место есть).

Может я не так понял принцип работы BOOT программы????? cranky.gif a14.gif

Кто сталкивался с таким - плиззззз. unsure.gif

Или - это не возможно???? laugh.gif

Не хочется ЗАКАЗЧИКУ давать ещё и программатор (тем более, что COM выведен на внешний корпус). EEPROM не надёжный. Работаю без внешней обвески по контролю питания. BOD много тянет. w00t.gif

cheers.gif cheers.gif cheers.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
Ёрген
сообщение Aug 11 2005, 03:02
Сообщение #2





Группа: Участник
Сообщений: 12
Регистрация: 1-07-05
Пользователь №: 6 437



Не совсем понял, в чем вопрос, но примерно следующее:
имеется основная программа, расположенная начиная с 0 адреса (RWW Section по терминологии Atmel). Она писать во FLASH не может. При выполнении некоторого условия (приход команды программирования по COM) управление передается программе загрузчика (BootLoader), которая расположена в верхних адресах (NRWW Section). Она производит программирование и возвращает управление главной программе.

Часто делают наоборот, при сбросе управление передается загрузчику, при выполнении некоторого условия он продолжает работу, иначе передает управление основной программе. Так, я думаю, более правильно и безопаснее (например, выключили свет при записи, придется разбирать устройство и программировать на программаторе, т. к. основная программа испорчена и управление загрузчику не происходит). Загрузчик мы испортить не можем, т. к. он сам в себя не пишет.

Исходные данные для работы: ДатаШиты на AVR (раздел Boot Loader Support (смотрю ATmega128)), Appnotes с сайта Atmel, http://www.ya.ru.

Обрати внимание на соответствующие Fuse.
Go to the top of the page
 
+Quote Post
Proton
сообщение Aug 11 2005, 03:15
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 3-08-05
Из: Новосибирск
Пользователь №: 7 334



Прежде всего советую посмотреть AVR109 там детально описан процесс самопрограммирования.
А конкретные примеры здесь http://www.atmel.ru/Spec/Loader.htm
и на avrfreaks.net в разделе akademy под названием megaloader. Только сначала там нужно зарегистрироваться.


--------------------
Всяк хорошая мысля к нам приходит опосля.
Go to the top of the page
 
+Quote Post
TriD
сообщение Aug 11 2005, 06:12
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Как выше было написано, даташит на любой микроконтроллер AVR содержит достаточно информации для написания своего загрузчика (даже не вникая сильно в процесс smile.gif). В свое время мне помог в этом деле Megaloader (дистрибутив лежит в приложении). В папке, куда он будет устанолен, находятся примеры загрузчиков для разных камней (на С).

К сожалению, файлик не цепляется

Сообщение отредактировал TriD - Aug 11 2005, 10:58
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Aug 11 2005, 11:31
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Судя по выдаваемой ошибке автор темы не понял как надо писАть во Flash.
Это делается не присвоением значения некоторой переменной (прямо или через указатель) лежащей во Flash памяти, а при помощи инструкции SPM и целого ряда нетривиальных процедур.
В даташите на МК это подробно и с примерами описано.
Применяю этот метод уже давно. И даже с шифрованием дампа, чтобы не раскрывать заказчику секретов.
Работает как часы!
Go to the top of the page
 
+Quote Post
Juk1976
сообщение Aug 11 2005, 15:04
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-08-05
Из: Украина Винница
Пользователь №: 7 258



Спасибо за ответы. cheers.gif
буду пробовать smile3046.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016