а какой компилер? У меня кейл RVMDK 3.03а, компилер RV, процессор AT91SAM7S256. Объявил глобальный масив
<c>
const unsigned char xke[100000] =
{ 20, 11, 22, 33
};
</c>
заюзал его в main()
<c>
for ( a= 0; a < 100000; a++ )
keys += xke[a];
</c>
в листинге
<c>
;;;184 for ( a= 0; a < 100000; a++ )
000002 4a11 LDR r2,|L4.72|
000004 4911 LDR r1,|L4.76|
000006 4b12 LDR r3,|L4.80|
000008 2000 MOVS r0,#0
;;;185 keys += xke[a];
|L4.10|
00000a 5c14 LDRB r4,[r2,r0]
00000c 680d LDR r5,[r1,#0] ; keys
00000e 1964 ADDS r4,r4,r5
000010 600c STR r4,[r1,#0] ; keys
000012 1c40 ADDS r0,r0,#1 ;184
000014 4298 CMP r0,r3 ;184
000016 dbf8 BLT |L4.10| ;184
</c>
в map-файле
<c>
xke 0x00105e48 Data 100000 main.o(.constdata)
.......................................
Total RO Size (Code + RO Data) 124816 ( 121.89kB)
Total RW Size (RW Data + ZI Data) 18928 ( 18.48kB)
Total ROM Size (Code + RO Data + RW Data) 125036 ( 122.11kB)
</c>
сделал массив из 100000 short-ов и 50000 int-ов. Тоже все ок.
или я что-то не так понял?