Столкнулся с необходимостью прочитать данные из Signature Row в IAR. С ходу в интернете не нашел, написал сам. Вот делюсь, может кому пригодится:
Код
uint8_t ReadSignatureRow(uint16_t address) {
// функция использует под свои нужды GPIOR0 и GPIOR1!
GPIOR0=uint8_t(address);
GPIOR1=uint8_t(address>>8);
unsigned char _t=__save_interrupt();
__disable_interrupt();
while (SPMCSR_SPMEN==1);
asm("IN R30,0x1E \n" // из GPIOR0, младшая часть адреса
"IN R31,0x2A \n" // из GPIOR1, старшая часть адреса
);
SPMCSR=0x21;
asm("LPM \n"
"MOV R16,R0 \n"
"OUT 0x1E, R16" // Выводим результат в GPIOR0
);
while (SPMCSR_SPMEN==1);
__restore_interrupt(_t);
return GPIOR0;
}