Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Использование кучи Heap
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Д_М
Здравствуйте!
Никогда не применял функций работы с кучей, но столкнулся с тем, что рамер кучи важен даже тогда, когда кучу не испульзую в явном виде.
Была замечена дурь программы, когда по MODBUS передавались большие массивы - 64 шестнадцатиразрядных регистра. Проблема была обойдена путём дробления на три посылки. В упрощенной версии проекта надо было предавать лишь 13 регистров. И программа начала дурить. После отключения передачи такого большого массива работала нормально. Вспомнил, что проект создавал с нуля, и потому значения кучи, стека данных, стека возврата были по умолчанию. Всё увеличил в 4 раза, и дурь прекратилась. Не экспериментировал, увеличение какого именно параметра дало эффект. Но, думаю, что стек данных и стек возврата тут непричём. Остаётся только куча. Каким образом она может влиять, если идёт передача из массива данных?
Спасибо!
Baser
Цитата(Д_М @ Feb 26 2015, 21:23) *
Но, думаю, что стек данных и стек возврата тут непричём. Остаётся только куча. Каким образом она может влиять, если идёт передача из массива данных?

Если вы не применяете никаких библиотечных функций, которые используют кучу, и сами ее в явном виде не применяете, то влиять она не может.
Скорее всего стек данных переполнялся. Это нормально видно под отладчиком.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.