Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Динамическое выделение памяти в IAR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Alexandr
Начинаю осваивать IAR. Использую макетку с LPC2148. Попытался динамически выделить память на 20 байт и получил ошибку линкера

Инструкция:
temp = (char *) calloc(20, sizeof(char));

Ошибка:
Linking
Error[e16]: Segment HEAP (size: 0x8000 align: 0x2) is too long for segment definition. At least 0x2310 more bytes needed. The problem occurred while
processing the segment placement command "-Z(DATA)HEAP+8000=40000000-40007FFF", where at the moment of placement the available memory
ranges were "CODE:40002310-40007fff"
Reserved ranges relevant to this placement:
40000000-4000020f DATA_Z
40000210-4000220f CSTACK
40002210-4000230f IRQ_STACK
40002310-40007fff HEAP

Видимо я что-то не правильно настроил. Подскажите где смотреть.
Andy Mozzhevilov
Цитата(Alexandr @ Feb 15 2009, 20:22) *
Error[e16]: Segment HEAP (size: 0x8000 align: 0x2) is too long for segment definition. At least 0x2310 more bytes needed. The problem occurred while
processing the segment placement command "-Z(DATA)HEAP+8000=40000000-40007FFF", where at the moment of placement the available memory

У вас запрашиваемый размер под heap 0x8000 не вмещается в RAM контроллера.
Alexandr
Прошу прощения за задержку. Про Heap я понял. Я просто не понял почему он такой большой размер запросил. Это видимо где-то настраиваться должно, но я не знаю где.
Andy Mozzhevilov
Цитата(Alexandr @ Feb 19 2009, 18:57) *
Прошу прощения за задержку. Про Heap я понял. Я просто не понял почему он такой большой размер запросил. Это видимо где-то настраиваться должно, но я не знаю где.

Одно из двух: В xcl файле или в командной строке линкеру определен сегмент heap как "-Z(DATA)HEAP+8000=40000000-40007FFF"
Там и нужно его поправить.
Сергей Борщ
Цитата(Alexandr @ Feb 19 2009, 14:57) *
Это видимо где-то настраиваться должно, но я не знаю где.
Project->OPtions->Linker->Configuration->Linker command file под ним неприметная иконка "Command file configuration tool" в ней вкладка "Stacks & Heap". Или в xcl-файле. Зависит от того, использует или нет xcl-файл те данные, которые оболочка передает при вызове линкера.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.