Цитата(Dog Pawlowa @ Mar 18 2014, 15:54)

У Вас не хватает места в этом сегменте.
Или уменьшите то, что Вы собираетесь туда впихнуть, или расширьте диапазон. Верхняя граница определяется физическим размером памяти, значит уменьшите нижнюю.
Тогда сегмент налезет на другие сегменты, придется и их двигать.
Так что лучше начните с того, что нарисуйте на бумажке распределение памяти, тогда и придет озарение.
Спасибо за ответ.
Пробовал менять диапазон, но результата нет, а в документации IAR'а не все понятно.
Я правильно понимаю, что :
1) Верхняя граница, которая определяется физ.размером памяти, в данном случае : -D_..X_CODE_END=8FFF ?
2)
Код
-P(CODE)BOOT=_..X_FLASH_BASE-_..X_CODE_END
-P(CODE)CODE=_..X_FLASH_BASE-_..X_CODE_END
-P(CODE)FARCODE=_..X_FLASH_BASE-_..X_CODE_END
Эти строки означают, что определены сегменты BOOT, CODE и FARCODE и располагаются они во флэш, а директива -P означает что части сегмента могут быть размещены не непрерывно, а с
разрывами? Эти сегменты могут быть расположены в любой части секции Бутлоадера, т.к. указано _..X_FLASH_BASE-_..X_CODE_END?
Еще непонятно с сегментом INTVEC : он описан как -Z(CODE)INTVEC=81F4-81FF, при этом выше есть строка : -D_..X_INTVEC_END=81FB, что означает верхнюю границу сегмента. Но почему это значение меньше 81FF?