Цитата(bingo @ Dec 28 2016, 11:59)

1. Поведение отладчика в "большой медленной программе" было такое же. Поэтому я и написал.
Это как раз один из тех случаев, когда "размер не имеет значения".
Цитата(bingo @ Dec 28 2016, 11:59)

2. Наверное Вы хотите мне напомнить про модификатор volatile (или __IO).
Как это бывает нужно в обработчике прерывания, например.
Но увы и это не работает
Нет, мы хотим напомнить про другой модификатор, а именно
__root для IAR.
И неиспользуемый код/данные выкидывает не компилятор, а компоновщик, а ему пофиг на volatile, он вообще про неё не знает.
volatile вообще никакого отношения не имеет к вопросу. Это совсем о другом.
Другое дело:
static __root int x;
Цитата(bingo @ Dec 28 2016, 11:59)

3. На определенном участке этой программульки все же массив нужен. Именно там я его и смотрю
И его собтимизировать на этом участке нельзя
Да и переменную компилятор не стал "выбрасывать"
По приведённому Вами коду чётко видно, что компилятор/компоновщик абсолютно прав.
А что там у Вас ещё где есть - то тут телепатов нет.