Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: F5418 - не могу прошить большую программу, хотя место еще есть! Возникает ошибка: Error[e104]
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
zoiberg
Не могу прошить MSP430F5418 полностью. Там два болших сегмента. Первый примерно 40kb, второй - 87 kb. Если размер кода маленький, то все заливается в первый сегмент, если он превышает 40 kb - то все льется во второй. А вот если код больше 87, то linker выдает ошибку Error[e104]. Из описания ошибки следует что код надо разбить на два сегмента в программе, а вот как это сделать - это и есть вопрос..Кто-нибудь сталкивался? (Пишу в IAR).

Вот Эта ошибка.

Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment CODE. Unable to place 1 block(s) (0x161c2 byte(s) total) in
0x1ff56 byte(s) of memory. The problem occurred while processing the segment placement command "-P(CODE)CODE=5C00-FF7F,10000-25BFF",
where at the moment of placement the available memory ranges were "CODE:5c0c-ff7f,CODE:10000-25bff"
Error while running Linker
rezident
Не до конца уверен, но видимо линкер не может самостоятельно разделить объектный модуль для компиляции в два сегмента памяти. Может стоит ему как-то помочь в этих потугах?
Сегментная фрагментация кода получается потому, что в конце 64кБ раздела памяти находится область векторов прерываний. Линкер должен как-то разделить непрерывный код на две части, но видимо не умеет этого делать. Попробуйте самостоятельно указать для некоторых функций в вашей программе конкретный сегмент памяти.
MrYuran
Цитата(rezident @ Aug 19 2010, 14:26) *
Линкер должен как-то разделить непрерывный код на две части, но видимо не умеет этого делать.

Точнее, его отучили smile.gif
В фичах нового компилятора как раз значится создание неразрывного одного объектника. Может, где-то есть галочка в настройках?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.