Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Заполнение памяти программ определенным значением
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
KSN
Как с помощью IAR (использую IAR 3.10C) заполнить всю свободную память программ определенным числом? Например, во все свободные ячейки поместить код jmp 0x00(0xC000).
vmp
Цитата(KSN @ Jan 18 2007, 12:16) *
Как с помощью IAR (использую IAR 3.10C) заполнить всю свободную память программ определенным числом? Например, во все свободные ячейки поместить код jmp 0x00(0xC000).


Прочитать в xlink.pdf про ключи -H и -h.

Поставить в проекте (Options | Linker | Processing) галочку напротив Fill unused memory и нужный код.
KSN
Пробовал, линек прекращает работу с фатальной ошибкой:
"Fatal Error[e38]: Option -H must not be defined more than once: -H1895"
Что я не доделал?
jorikdima
Цитата(KSN @ Jan 18 2007, 14:46) *
Пробовал, линек прекращает работу с фатальной ошибкой:
"Fatal Error[e38]: Option -H must not be defined more than once: -H1895"
Что я не доделал?

Скорее всего "переделали". В параметрах линкеру эта опция указана более одного раза. Посмотрите что линкеру идет в параметрах.
IgorKossak
Очевидно линкеру дано задание заполнять неиспользуемые вектора прерываний инструкциями возврата из прерываний. Это уже заполнитель.
Определение заполнителя может быть только одно на проект.
Если хотите использовать другой заполнитель, то отключите опцию заполнения неиспользуемых векторов.
Если всё таки нужны и возвраты из неиспользуемых прерываний, то пропишите эти функции явно, например:
Код
__interrupt void SPI_STC_interrupt() {}
plombir
Добавлю к выше сказанному:
это определение находится в файлах lnk-----.xcl , которые подключаются при линковании
Цитата
/* Fill unused interrupt vector's with RETI */
-H1895
-h(CODE)0-_..X_INTVEC_SIZE

Выход: запретить все подключения и самому создать свой файл .XCL с прописанными настройками линка, и подключить его в свой проект.

Пример моего XCL для меги8
Нажмите для просмотра прикрепленного файла
KSN
Всем спасибо, заработало.
Panych
Цитата(IgorKossak @ Jan 19 2007, 14:40) *
Если хотите использовать другой заполнитель, то отключите опцию заполнения неиспользуемых векторов.

А как это сделать?
Опции не нашел, а в используемых файлах cfgtiny26.xcl и cfg0t.xcl опции "-H" нет...


ответил IgorKossak:
Эта опция неявно присутствует если установлена галочка General Options->System->Initialize unused interrupt vectors with RETI instructions (-H1895).
Уберите эту галочку и вставьте в файл линкера свою опцию заполнения.
При этом, если надо, команды возврата из незадействованых прерываний нужно обеспечить вручную написав обработчики прерываний с пустыми телами.

Источник тут:
http://electronix.ru/forum/index.php?showt...mp;#entry359789
Runner
IAR AVR 5.11b, tiny24, поставил опцию заполнить неиспользованную память нулями, но почему-то генерятся hex файлы (intel-standard), в которых неиспользованные байты в области прерываний просто пропущены (память "порвана"). В проекте также генерится EEPROM hex файл с помощью -О опции в дополнительных командах. Ошибок, предупреждений при компиляции нет. В чем может быть дело?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.