Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Компилятор, оптимизация, error (keil, STM32)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Нортон
Здравствуйте.

Программирую под STM32 в keil. Есть два куска программы, писали два человека. При их объединении возникают такие ошибки:
1. No space in execution regions with .ANY selector matching startup_stm32l1xx_md.o(HEAP).
2. .\other\AMT_net.axf: Error: L6407E: Sections of aggregate size 0x1000 bytes could not fit into .ANY selector(s).

Какая-то проблема с heap, но если честно я не знаю зачем, где и как на микроконтроллере используется куча (может, кто объяснит).

Но если убрать оптимизацию в настройках компилятора, эти ошибки исчезают.

Объясните, пожалуйста, что происходит, как используется куча, ну можно еще интересное что-то есть чего я не знаю)))

Заранее благодарю за любые ответы.
toweroff
покажите .sct файл и этот стартап. Сообщение говорит о том, что банально нет места в регионе, отведенном под код (.ANY). Может, кто-то из них ухитрился кучу разместить не в регионе RW?
Golikov A.
Цитата(Нортон @ Oct 8 2013, 17:25) *
Какая-то проблема с heap, но если честно я не знаю зачем, где и как на микроконтроллере используется куча (может, кто объяснит).


Да вроде куча также используется как и везде.
new, malloc, realloc, free, delete, и прочие операторы динамического выделения памяти берут ее из кучи. Если вы явно не используете такие штуки, то туда могут полезть библиотечные функции, от которых вы этого можете не ждать, типа stdio, printf и так далее...

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