[an error occurred while processing this directive]
|
Уже три дня пытаюсь написать обновлялку бутлоадера.
Бутлоадер у меня сидит по адресу 0xF000.
Прогу, обновляющию бутлоадер я помещаю по адресу 0xE000.
Но команды стирания, записи FLASH не выполняются какую бы страницу не стирали, хоть 0x0000, хоть 0x0100, хоть 0xE000, хоть 0xF000. Если тот же самый код помесить по адресу 0xF000 и поставить фусбит BOOTRST, то этот код работает - стирает и программирует страницу как надо.
void WaitSPM() _SPM_ERASE(0x100); Все бутлокбиты и локбиты равны 1.
{
while( SPMCR & (1<
WaitSPM();
for(BYTE i=0;i<128;i++)
{
_SPM_FILLTEMP(0x100+(WORD)i*2,i);
WaitSPM();
}
_SPM_PAGEWRITE(0x100);
WaitSPM();
Подскажите в чем может быть дело.
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание