Цитата(Вячик13 @ Jul 30 2015, 11:24)

В файле *.map упоминание об этой структуре отсутствует.
Значит нигде в коде она у Вас не используется.
Цитата(Вячик13 @ Jul 30 2015, 11:24)

Но это только часть таблицы. Добавляю остальное. Опять компилирую.
Появляется в файле *.map, но ложится а область ОЗУ (длина таблицы 0x5890 байт).
Открывайте icf-файл компоновщика и смотрите куда у Вас компонуются какие секции.
Пример моего icf-файла для какого-то STM32F100:
CODE
define memory mem with size = 4G;
define region FLASH_regionA = mem:[from 0x08000000 to 0x080000FF];
define region FLASH_regionB = mem:[from 0x08000100 to 0x0800FFFF];
define region RAM_regionA = mem:[from 0x20000000 size 0x5000];
define block CSTACK with alignment = 8, size = 0x000 {};
define block HEAP with alignment = 8, size = 0x000 {};
//.dma: для DMA-транзакций
//.BITBAND_RAM: для bitband-переменных
initialize by copy {rw};
do not initialize {section .noinit};
do not initialize {section .dma};
do not initialize {section .bssStk};
do not initialize {section .bssStkMain};
do not initialize {section .bssMemNoFill};
do not initialize {section .imonSave};
define block IMAGE_HEAD with fixed order {section .intvec,
section .checksum, section .codehead, section .intvecTail};
place in FLASH_regionA {block IMAGE_HEAD};
place in FLASH_regionB {ro, first section .codebegin, last section .codetail};
place in RAM_regionA {rw, first block CSTACK, section .BITBAND_RAM,
section .dma, section .bssMemNoFill, block HEAP};
include "io.icf";
Строка
place in FLASH_regionB задаёт компоновщику линковать все readonly-секции, для которых целевые регионы не указанные явно, во FLASH_regionB.
Цитата(Вячик13 @ Jul 30 2015, 11:24)

Пытаюсь поставить перед объявлением и инициализацией прагму:
#pragma location=0x08000800
Теперь ложится в память согласно прагме, но после загрузки при попытке выполнения "улетает".
Ну да, а по этим адресам у Вас случайно не код находится? И получается каша. Понятно что "улетает"...
Цитата(Вячик13 @ Jul 30 2015, 11:24)

Что делать и кто виноват?
Виноваты понятно - Вы. А что делать - написано выше.
Цитата(AHTOXA @ Jul 30 2015, 14:40)

Я бы в первую очередь заменил
char *Name; //Отображаемое имя пункта меню
на
char const* Name;
И почему? Почему Вы думаете, что это у автора указатель на константные данные? Ничто не запрещает указателю на данные в ОЗУ быть константным. Он просто становится
char * const Name;Цитата(Вячик13 @ Jul 30 2015, 17:19)

Понял, спасибо. Вполне возможно. Сейчас начну перелопачивать таблицу построчно, постепенно добавляя данные.
Нет в Вашем объявлении ничего, что мешает экземпляру структуры быть константным.
Разве что убедитесь что в этом экземпляре (и подобных ему остальных):
{"АЦП",mt_WithoutValue,NULL,0,0,al_Operator,0.0,0.0,0.0,NULL,2,428,66,&MenuTestVariable[0],NULL,NULL,0,1}что: mt_WithoutValue и al_Operator - константы (enum или #define), а не переменные.
PS: И возможно ещё что Вы что-то намутили с ключами проекта IAR.