Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Память Heap в иаре...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Пришелец
В настройках проекта иара есть выделение памяти под heap
она используется для динамического выделения памяти - new alloc и т д

В проекти динамическое выделение памяти не используется поставил размер 0.

Сначала вроде программа работает нормально, но иногда появляются странные трудноотлаживаемые глюки. sad.gif

Поставил размер кучи 0х30 вроде нормально работает smile.gif

Может это ещё на что-то влияет?..
IgorKossak
Иногда глюки возникают когда установлен недостаточный размер стеков (особенно это сказывается при использовании prinf()) и различные косвенные ухищрения создают впечатление, что проблема устранена.
Если Вы установили размер кучи =0 и линкер не выругался, значит этот сегмент памяти не задействован в проекте и проблема совсем в другом.
Рекомендую:
- на начальном этапе создания проекта не скупиться на стеки (реальный размер можно подогнать позже);
- инспектировать файлы .lst и .map для проверки потребления ресурсов памяти.
-Tумблер-
Цитата(Пришелец @ Feb 1 2005, 17:50)
В проекти динамическое выделение памяти не используется поставил размер 0.

Сначала вроде программа работает нормально, но иногда появляются странные трудноотлаживаемые глюки.  sad.gif

Поставил размер кучи 0х30 вроде нормально работает  smile.gif

*


Вполне вероятно, что какие либо библиотечные
проце-дуры использует кучу "скрыто" от юзера.
А может это какая-нибудь ощибка инициализации
(в старт-апе), для которой 0 для кучи - недопустимый параметр.
smile.gif
IgorKossak
Цитата(-Tумблер- @ Feb 2 2005, 13:55)
Вполне вероятно, что какие либо библиотечные
проце-дуры использует кучу "скрыто" от юзера.
А может это какая-нибудь ощибка инициализации
(в старт-апе), для которой 0 для кучи - недопустимый параметр.
smile.gif
*

1. "Скрытое" использование кучи исключено. Проверено многими способами.
2. Тоже исключено.
Может быть что-то зависит от способа конфигурирования, хотя мало вероятно. Я предпочитаю конфигурировать через .xcl файл.
Кроме того, если размер кучи даже и задан и сегмент HEAP определён, куча не будет создана если в проекте нет команд её использующих (malloc(), calloc(), realloc(), free(), new, delete).
Для болшей уверенности, что куча не используется можно исключить (закомментарить) из .xcl файла упоминание о сегменте HEAP.
Пришелец
Спасибо всем.

Глюк остался и с выделенной кучей. wacko.gif

А насчёт размеров стеков полностью согласен. Лучше заранее определить под них заведомо много памяти.

Несколько раз натыкался из-за этого на появляющиеся с ростом кода непонятные глюки smile3046.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.