В IAR решили эту проблему, там указатели для мег с >128к памятью 3-х байтовые.
Программист эту проблему не ощущает. Но только когда пытается указатели на ОЗУ к указателям на флэш кастовать
А в avr-gcc вроде есть какая-то секция, что-то вроде trampoline, куда могут вести указатели на функции, расположенные в верхней половине 256кб, в этой секции находится таблица, а уже в этой таблице находятся реальные адреса функций...
И спомощью линкера, что-то подобное можно организовать. И это должно как-то помочь с двубайтовым ограничением на указатель.
Сам никогда не пробовал, но помойму на avr фриках что-то читал об этом. Разве не должно помочь?
Хотелось бы в иделае, всё адресное пространство флэши использовать под код, а то для больших мег применение gcc не имеет смысла.