реклама на сайте
подробности

 
 
> Проблема выделения памяти malloc в проекте С++
Fynjisx
сообщение Mar 19 2012, 07:52
Сообщение #1


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Привет ВСем! Использую в работе Cyclone EP3C80. Возникла такая проблема - В чистом проекте на С использовал функцию malloc. Все вроде было нормально, но как только его превратил в С++ вызов malloc, упорно возвращает 0, с чем это может быть связано?
И попутный вопрос - Где в NIOS SBT задается размер кучи?
При переходе от С к C++, нужно ли в настройках BSp Editor менять компилятор c C на С++?


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
juvf
сообщение Mar 19 2012, 09:31
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Я специально ни чего не менял. компилятор в 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 нет, то проблема не в размере кучи.


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение Mar 19 2012, 13:51
Сообщение #3


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(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% свободной остается...

Сообщение отредактировал Fynjisx - Mar 19 2012, 14:03
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 22 2012, 14:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Fynjisx @ Mar 19 2012, 17:51) *
И при этом я даже 1 байт не могу получить malloс'ом(молоком laughing.gif )


А new работает?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016