Цитата(Непомнящий Евгений @ Sep 6 2012, 15:25)

Странно, у меня работает. IAR 5.12c. Atmega 128, 1280, 2560
5.50.0 - не работает, причем он одинаково относится к любым спецификаторам места хранения (__io, __flash, __eeprom)
Попытка обмана, через ассемблер не прошла

void foo (unsigned char adr)
{
asm("CLR r17");
asm("OUT r16, r17"); // первый параметр функции типа char
хранится в r16 }
исходя из того, что я знаю про ассемблер, подменить этот параметр никак не получится.... Прийдется смирится с накладными рассходами.
Всетаки интересно на счет спецификатора __io, мне так и не удалось его применить. Даже для глобальной переменной ругается вот так:
Error[Ta007]: An __io declared variable must be located.
Сообщение отредактировал Errorkpi - Sep 6 2012, 12:34