Я не настоящий сварщик, но сейчас всё работает как раз с Flash. void blah_blah(uint8_t CMD1, uint8_t CMD2, uint8_t CMD3, uint16_t Size, uint8_t *origin) {
.....;
temp = pgm_byte_read(origin++); // Как-то так, исходник дома.
.....;
}
Хочется повысить гибкость. Судя по всему - не надо выделываться. Надо анализировать параметры функции, различные для передачи массива во Flash и в RAM - они есть.