Исходник простой. До безобразия.
Код
#pragma location=0x00
__root __eeprom volatile int tab[83]=
{....};
Без root точно такой же, но без root.
В листинге с рут
Код
\ In segment EEPROM_AN, at 0x0, root
\ int volatile __eeprom tab[83]
\ tab:
\ 00000000 03C603C203BE DW 966, 962, 958, 954, 950, 945, 940, 935, 930, 925, 919, 913, 907, 901
\ 03BA03B603B1
\ 03AC03A703A2
Без рут - в листинге отсутствует всякое упоминание. Поэтому и примера листинга не будет.
Если всего три переменных и у каждой определить location, то переменные без рут будут просто пропущены. Т.е. как и не было. И обращение к тем местам в епром, где они как бы должны быть оканчивается чтением FF.
Если хоть раз упомянуть имя - переменная остается в памяти и все хорошо.
-- Если добавить в прогамму упоминание, чтобы сохранить переменную, то листинг выглядит абсолютно идентично, исключая слово root в строке In segment EEPROM_AN, at 0x0.
Сообщение отредактировал DpInRock - Dec 10 2008, 14:03