Доброго времени!
Пишу:
Код
extern volatile uint16_t time;
uint16_t get_time(void)
{
ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
{
return(time);
}
}
gcc 4.2.2 Компилер генерит идеально:
Код
00000208 <get_time>:
208: 2f b7 in r18, 0x3f; 63
20a: f8 94 cli
20c: 80 91 b6 00 lds r24, 0x00B6
210: 90 91 b7 00 lds r25, 0x00B7
214: 2f bf out 0x3f, r18; 63
216: 08 95 ret
Вопрос к гуру: насколько такая немного дураковатая конструкция портабельна?