Цитата(Oleg_IT @ Oct 9 2006, 20:48)

Большие массивы я во __flash помещаю. А как понять, что переменная в области __tiny лежит?
Во заимствованном коде есть
#ifndef USB_BUFFER_SECTION
# define USB_BUFFER_SECTION "TINY_Z" /* if user has not selected a named section */
#endif
Может это мешает? Если да, то как это исправить?
Очевидно, определить в коде
#define USB_BUFFER_SECTION "NEAR_Z"
или на вкладке compiler options -> Preprocessor.
Судя по виду эта USB_BUFFER_SECTION скорее всего используется в программе примерно так:
#pragma dataseg=USB_BUFFER_SECTION
Только этим дело скорее всего не ограничится, так как есть ещё TINY_N, TINY_I, TINY_HEAP, TINY_ID.
Описаны в EWAVR_CompilerReference.pdf.
А ещё редко какая программа обходится без указателей, они тоже будут разными (размером 1 или 2 байта).
Есть ещё одно решение - попросту убрать из текста все явные указания в каком сегменте размещать переменные, поскольку в случае с Мегой128 сегмента TINY просто нет, вся память будет NEAR и без явного указания, по умолчанию.
Но обьявления указателей и корректную работу с ними (особенно всякие явные и неявные преобразования типов) проверять придётся.