Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042
работая с IAR 4.30А столкнулся с проблемой, не получается разместить константу в internal flesh по абсолютному адресу, проц ..SAM7S128, - 512 сегментов по 256 байт . задача : разместить число 0x1234 в последнем сегменте, т.е. по адресу 0x1FF00. пробовал следующее: 1) static const int Adr_flesh @ 0x1FF00 = 0x1234; 2) #pragma location = 0x1FF00 const int Adr_flesh = 0x1234; 3) пробовал в файле __.xcl поменять -D ROMEND=0001FFFF на -D ROMEND=0001FEFF
Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042
т.е. необходимо чтобы при заливке программы через JTAG, по этому адресу flesh была константа, скорее всего дело в настройке Linkerа , т. е. как нужно изменить файл __FLESH.xcl, и что потом ещё сделать?
не заметил что выответили, я описывал свой сегмент, и пробовал объявлять таким образом, 1)поправил границы.. 2) задал адрес начала и конца нового сегмента 3) и создал сегмент -Z(CONST)MYROM=ROMMYSTART-ROMMYEND 4) #pragma location = "MYROM" static const uint Adr_flesh = 0x1234; не получается так !
Специально проверил - все получилось. Нужно только чтобы на данную переменную была ссылка или она была объявлена как __root const uint Adr_flash = 0x1234; иначе линкер её выбрасывает как неиспользуемую.