Нужно хранить большой массив (больше 100 байт) в Attiny2313. Оперативки не хвата (всего доступно 128 байт SRAM), приходится на flash'е. Этот массив (точнее его указатель на первый элемент) должен передаваться в качестве параметра в функцию обработки массива. Массив у меня назван, допустим, flash int mass[1, 2, 3, ...].
Собственно сама проблема: если в функции-обработчике задать параметры так: void read_mass(int mel[]), то ругается компилятор (CodeVisionAVR 2.03). Если так: void read_mass(flash int mel[]), то начиная с n-го элемента массива считывание этого самого элемента даёт сбой и программа как бы подвисает. Если же тело функции поместить сразу в main, то проблем нет. Это повторяется как в Протеусе, так и в железе.
Вопрос: можно ли каким-нибудь образом организовать так, чтобы:
1. В Attiny2313 можно было бы хранить массивы подобных размеров (до двух-трёх, может чуть больше штук)
2. Обработка выполнялась бы в отдельной функции (то есть передать в функцию в качестве параметра массив, хранящийся в flash, eeprom или ещё где-нибудь)
3. Происходило правильное считывание элементов массива.
4. Хотелось бы узнать причину происходящего.
О варианте взять Мегу я знаю сам, так что нужно решать проблему в рамках Тиньки. Поместить тело функции в main - крайний вариант.
Заранее благодарю за ответ.


