Для MCU ATMEGA8535 не правильно откомпилированы функции для работы с eeprom Библиотечная функция не работающая функция: 0000073e <eeprom_read_byte>: 73e: f9 99 sbic 0x1f, 1 ; 31 740: fe cf rjmp .-4 ; 0x73e <eeprom_read_byte> 742: 92 bd out 0x22, r25 ; 34 744: 81 bd out 0x21, r24 ; 33 746: f8 9a sbi 0x1f, 0 ; 31 748: 99 27 eor r25, r25 74a: 80 b5 in r24, 0x20 ; 32 74c: 08 95 ret Самописная работающая функция: while(EECR&(1<<EEWE)); EEAR=(uint16_t)eeaddr; EECR|=(1<<EERE); s=EEDR; while(EECR&(1<<EEWE)); 50e: e1 99 sbic 0x1c, 1 ; 28 510: fe cf rjmp .-4 ; 0x50e <eedata_read_block+0x36> EEAR=(uint16_t)addr; 512: df ba out 0x1f, r13 ; 31 514: ce ba out 0x1e, r12 ; 30 EECR|=(1<<EERE); 516: e0 9a sbi 0x1c, 0 ; 28 s=EEDR; 518: 8d b3 in r24, 0x1d ; 29 Видно, что библиотечная функция обращается к неправильным портам
avr-libc-2.0.0-alt1