Help! Не работает запись во флэш в ATmega16-16AU + IAR v4.20 Вот кусок моего кода, который пишет во флэш:
void WaitSPM()
{
while(SPMCR_SPMEN); // Wait until Flash write completed
}
for(unsigned char i=0;i<128;i++)
{
__watchdog_reset();
WaitSPM();
_SPM_FILLTEMP(i<<1,i);
// spmWriteWord((unsigned char __flash*)i,0);
}
WaitSPM();
// spmErasePage((unsigned char __flash*)0);
_SPM_ERASE(0);
WaitSPM();
_SPM_PAGEWRITE(0);
WaitSPM();
SPMCR=(1<<RWWSRE)|(1<<SPMEN); // Enable RWW flash section
asm("spm");
for(;;)__watchdog_reset();
Он располагается в NRWW секции.Биты BOOTRST и BOOTSZ стоят как надо.
После исполнения этого кода, читаю понипрогром. А там везде FF. Тоже самое на атмеге128 и атмеге64 работает.
Почему это не работает на атмеге16 ?