Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема выделения памяти malloc в проекте С++
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Fynjisx
Привет ВСем! Использую в работе Cyclone EP3C80. Возникла такая проблема - В чистом проекте на С использовал функцию malloc. Все вроде было нормально, но как только его превратил в С++ вызов malloc, упорно возвращает 0, с чем это может быть связано?
И попутный вопрос - Где в NIOS SBT задается размер кучи?
При переходе от С к C++, нужно ли в настройках BSp Editor менять компилятор c C на С++?
juvf
Я специально ни чего не менял. компилятор в BSP Editor->Main->Settings->Advanced->cc = nios2-elf-gcc -xc

также стоит галка в BSP Editor->Main->Settings->Advanced->enabled_c_plus_plus
размер кучи ни где не задавал. стоит в BSP Editor->Linker Script - см скрин.

попробуй выделить минимальное кол-во маллоком? что вернёт. Попробуй оператор new, new тоже выделяет память из кучи. если new выделит, а malloc нет, то проблема не в размере кучи.

Fynjisx
Цитата(juvf @ Mar 19 2012, 13:31) *
Я специально ни чего не менял. компилятор в BSP Editor->Main->Settings->Advanced->cc = nios2-elf-gcc -xc

также стоит галка в BSP Editor->Main->Settings->Advanced->enabled_c_plus_plus
размер кучи ни где не задавал. стоит в BSP Editor->Linker Script - см скрин.

попробуй выделить минимальное кол-во маллоком? что вернёт. Попробуй оператор new, new тоже выделяет память из кучи. если new выделит, а malloc нет, то проблема не в размере кучи.

Вот что задано:
В SOPC on-chip 294912_Byte;
Галка разрешения С_++;
exception stack size задано 1024;
interrupt stack size задано 1024.

теперь инфо:
Nios-stackreport дает 57KB program size(stack + init data), 6548Bytr stack + heap.
Nios2-elf-size говорит, что: text = 50956, data = 7128, bss = 900.
Memory Device Usage Table вообще показывает, см прикрепленку.

И при этом я даже 1 байт не могу получить malloс'ом(молоком laughing.gif )

Я не понимаю как он так считает? Вообще откуда такой результат что на heap 6548, да ещё со стеком, если полагаясь на Memory Device Usage Table памяти то ещё 80% свободной остается...
alexadmin
Цитата(Fynjisx @ Mar 19 2012, 17:51) *
И при этом я даже 1 байт не могу получить malloс'ом(молоком laughing.gif )


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