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

 
 
> Самопрограммирование mega640.
cpl
сообщение Jul 21 2008, 17:32
Сообщение #1


Местный
***

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



Необходимо обновлять загрузчик, есть ли возможность прошить загрузчик(NRWW область) из памяти программ (NWW область) ?
Код взял из примеров Atmel, страница памяти программ остается не тронутой, не стирается ....
Если код располагается в NRWW областе то страница стирается, вне ее нечего не просиходит...
smile3046.gif
код:

ldi ZL,0x00
ldi ZH,0x70

ldi temp,(1 << PGERS | 1<< SPMEN) ; Page Erase
call Do_spmF

ldi temp,(1 << RWWSRE | 1<< SPMEN)
call Do_spmF

Do_spmF:
push temp1
Do_spmF1:
in temp1,SPMCSR
sbrc temp1,SPMEN
rjmp Do_spmF1
in temp1,SREG
cli
Wait_eeF:
sbic EECR,EEPE
rjmp Wait_eeF
out SPMCSR,temp
spm
out SREG,temp1

pop temp1

ret
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IJAR
сообщение Jul 23 2008, 07:43
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Сталкивался с подобной проблемой - решил ее так:
Загрузчик размещен в области BootLoader, при этом функция непосредственной
записи во Flash занимает строго 1 страницу в 256 байт (хотя сама она короче)
Перед заменой загрузчика, во Flash для Application, пишется промежуточный загрузчик,
но он использует функцию записи страницы Flash из основного загрузчика.
Далее - управление передается на промежуточный загрузчик, который производит
обновление основного, при этом страница с функцией записи Flash пропускается.
Все отлично работает.


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 23 2008, 07:51
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(IJAR @ Jul 23 2008, 10:43) *
функция непосредственной
записи во Flash занимает строго 1 страницу в 256 байт


Иными словами, во время записи происходит какая-то чехарда с фьюзами?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- cpl   Самопрограммирование mega640.   Jul 21 2008, 17:32
- - arttab   обновлялка загрузчика должна быть в NRWW. Хотя мо...   Jul 22 2008, 13:26
|- - cpl   Цитата(arttab @ Jul 22 2008, 17:26) обнов...   Jul 22 2008, 13:31
|- - oran-be   Совершенно непонятно - в чем проблема. Если зашар...   Jul 22 2008, 16:15
|- - cpl   Цитата(oran-be @ Jul 22 2008, 20:15)...   Jul 23 2008, 08:21
|- - IJAR   Цитата(_Pasha @ Jul 23 2008, 11:51) Иными...   Jul 23 2008, 08:05
- - Александр Куличок   ЦитатаИными словами, во время записи происходит ка...   Jul 23 2008, 12:36
|- - Боинг749   Цитата(Александр Куличок @ Jul 23 2008, 15...   Aug 25 2008, 12:55
- - Syberian   Не знаю, как насчет 640-й, но некоторые Меги не по...   Aug 26 2008, 04:27
- - cpl   Цитата(Syberian @ Aug 26 2008, 08:27) Что...   Aug 26 2008, 08:47
- - Боинг749   Цитата(cpl @ Aug 26 2008, 12:47) ^^^^^^^^...   Aug 26 2008, 19:26
- - sKWO   Цитата(Боинг749 @ Aug 26 2008, 22:26) Ком...   Aug 26 2008, 20:01
- - Боинг749   Цитата(sKWO @ Aug 27 2008, 00:01) Ну, чег...   Aug 26 2008, 20:19


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

 


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


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