Пытаюсь отследить ход работы примера из <avr/boot.h> void boot_program_page (uint32_t page, uint8_t *buf)
{
uint16_t i;
uint8_t sreg;
sreg = SREG;
cli();
eeprom_busy_wait ();
boot_page_erase (page);
boot_spm_busy_wait ();
for (i=0; i<SPM_PAGESIZE; i+=2)
{
uint16_t w = *buf++;
w += (*buf++) << 8;
boot_page_fill (page + i, w);
}
boot_page_write (page);
boot_spm_busy_wait();
boot_rww_enable ();
SREG = sreg;
}
зацикливается на
488: boot_spm_busy_wait ();
+00000861: B607 IN R0,0x37 In from I/O location
+00000862: FC00 SBRC R0,0 Skip if bit in register cleared
+00000863: CFFD RJMP PC-0x0002 Relative jump
В R1:R0 хранятся данные для записи.
Куда копать?