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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> GCC ARM + malloc-free
Сергей Борщ
сообщение Mar 29 2012, 10:33
Сообщение #16


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (athlon64 @ Mar 29 2012, 12:34) *
Спасибо, но, к сожалению, с плюсами у меня пока не очень.
Его довольно просто вернуть обратно в обычный С - переименовать класс в структуру, вынести из него функции, заменить конструктор на функцию инициализации, которую вызывать при старте программы и, собственно, все.

P.S. Хотя нет, не все так просто. Попробую сделать сам.

Вот такое получилось. Не проверял, но кажется сломать там что-то было трудно.
Прикрепленные файлы
Прикрепленный файл  heap_c.zip ( 3.5 килобайт ) Кол-во скачиваний: 69
 


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
athlon64
сообщение Mar 29 2012, 10:40
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Попробовал Codesourcery G++ Lite - результат тот же, malloc возвращает 0х00000008. Так что дело не в тулчейне


Цитата(Сергей Борщ @ Mar 29 2012, 15:33) *
Вот такое получилось. Не проверял, но кажется сломать там что-то было трудно.

О, спасибо, сейчас попробую.sm.gif


--------------------
Руслан
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 29 2012, 10:43
Сообщение #18


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Если что, я занычил ссылочку на исходный вариант аллокатора от zltigo: здесь.

Цитата(athlon64 @ Mar 29 2012, 16:40) *
дело не в тулчейне

Выкладывайте тогда makefile, помозгуем.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
athlon64
сообщение Mar 29 2012, 10:56
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Цитата(Сергей Борщ @ Mar 29 2012, 15:33) *
Вот такое получилось. Не проверял, но кажется сломать там что-то было трудно.

Отлично работает!

Цитата(AHTOXA @ Mar 29 2012, 15:43) *
Если что, я занычил ссылочку на исходный вариант аллокатора от zltigo: здесь.

Выкладывайте тогда makefile, помозгуем.

MakeFile во вложении
Прикрепленные файлы
Прикрепленный файл  makefile.txt ( 2.1 килобайт ) Кол-во скачиваний: 143
 


--------------------
Руслан
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 29 2012, 11:32
Сообщение #20


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(athlon64 @ Mar 29 2012, 16:56) *
MakeFile во вложении

По этому makefile ничего сказать нельзя. Там куча включений других файлов.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 29 2012, 11:51
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(athlon64 @ Mar 29 2012, 13:34) *
Не знаю. Как уточнить? Newlib в yagarto в виде объектных файлов... хотя исходники тоже отдельно выложены.
Смотрите в исходниках. в newlib/libc/stdlib/mallocr.c
Вызов sbrk должен быть завернут в макрос MORECORE, убедитесь, что там действительно sbrk, а не что нибудь другое

Go to the top of the page
 
+Quote Post
athlon64
сообщение Mar 30 2012, 03:23
Сообщение #22


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Цитата(XVR @ Mar 29 2012, 16:51) *
Смотрите в исходниках. в newlib/libc/stdlib/mallocr.c
Вызов sbrk должен быть завернут в макрос MORECORE, убедитесь, что там действительно sbrk, а не что нибудь другое

В mallocr.c:
#define MORECORE(size) _sbrk_r(reent_ptr, (size))


--------------------
Руслан
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 30 2012, 08:25
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(athlon64 @ Mar 30 2012, 07:23) *
В mallocr.c:
#define MORECORE(size) _sbrk_r(reent_ptr, (size))

Смотрите, как реализован _sbrk_r - он должен звать ваш sbrk
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:51
Рейтинг@Mail.ru


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