[an error occurred while processing this directive]
Перепрограммирование бутлоадера в ATmega64.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Ale3000 19 сентября 2006 г. 08:30

Уже три дня пытаюсь написать обновлялку бутлоадера.
Бутлоадер у меня сидит по адресу 0xF000.
Прогу, обновляющию бутлоадер я помещаю по адресу 0xE000.
Но команды стирания, записи FLASH не выполняются какую бы страницу не стирали, хоть 0x0000, хоть 0x0100, хоть 0xE000, хоть 0xF000. Если тот же самый код помесить по адресу 0xF000 и поставить фусбит BOOTRST, то этот код работает - стирает и программирует страницу как надо.

void WaitSPM()
{
while( SPMCR & (1<}

_SPM_ERASE(0x100);
WaitSPM();
for(BYTE i=0;i<128;i++)
{
_SPM_FILLTEMP(0x100+(WORD)i*2,i);
WaitSPM();
}
_SPM_PAGEWRITE(0x100);
WaitSPM();

Все бутлокбиты и локбиты равны 1.
Подскажите в чем может быть дело.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание