в общем так.
Код
const unsigned char __test[] = {
0xC2, 0x47, 0x05, 0x31, 0x21, 0x00, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x02, 0x07, 0x6F, 0x00,
0x03, 0x00, 0x33, 0x02, 0x09, 0xCC, 0x00, 0x03, 0x00, 0x43, 0x02, 0x06, 0x00, 0x00, 0x03, 0x00,
0x53, 0x02, 0x06, 0x00, 0x03, 0xFF, 0x00, 0x80, 0x90, 0xE6, 0xB9, 0xE0, 0x70, 0x03, 0x02, 0x01,
0x5C, 0x14, 0x70, 0x03, 0x02, 0x02, 0x05, 0x24, 0xFE, 0x70, 0x03, 0x02, 0x02, 0x9D, 0x24, 0xFB,
0x70, 0x03, 0x02, 0x01, 0x56, 0x14, 0x70, 0x03, 0x02, 0x01, 0x50, 0x14, 0x70, 0x03, 0x02, 0x01,
0x44, 0x14, 0x70, 0x03, 0x02, 0x01, 0x4A, 0x24, 0x05, 0x60, 0x03, 0x02, 0x03, 0x0E, 0x12, 0x09,
0xD5, 0x40, 0x03, 0x02, 0x03, 0x1A, 0x90, 0xE6, 0xBB, 0xE0, 0x24, 0xFE, 0x60, 0x2C, 0x14, 0x60,
0x47, 0x24, 0xFD, 0x60, 0x16, 0x14, 0x60, 0x31, 0x24, 0x06, 0x70, 0x66, 0xE5, 0x23, 0x90, 0xE6
};
Сейчас проверил - даже если массив глобальный, но к нему нет обращения, компилятор его просто выбрасывает, о чем честно говорит в
map-файле:
Код
Removing start.o(.constdata), (128 bytes)
Код
Program Size: Code=19456 RO-data=1456 RW-data=180 ZI-data=7132
Если же я явно указываю место размещения, компилятору уже некуда деваться и он просто обязан разместить массив во флэш:
Код
const unsigned char __test[] __at(0x00007000) = { ...
mapКод
__test 0x00007000 Data 128 start.o(.ARM.__AT_0x00007000)
результат
Код
Program Size: Code=19456 RO-data=9344 RW-data=180 ZI-data=7132