|
GCC ARM + malloc-free |
|
|
|
Mar 26 2012, 12:14
|

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

|
МК STM32F207 Eclipse + GCC Yagarto Никак не могу заставить работать менеджер памяти из стандартной библиотеки си. Добавил в проект syscalls.c взятый на форуме. Скрипт линкера (flash.icf) гибрид, но вроде правильный. Всё компилируется без ошибок, но функция malloc всегда возвращает 0x00000008. syscalls.c и flash.icf прикладываю.
--------------------
Руслан
|
|
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 22)
|
Mar 29 2012, 10:33
|

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

|
QUOTE (athlon64 @ Mar 29 2012, 12:34)  Спасибо, но, к сожалению, с плюсами у меня пока не очень. Его довольно просто вернуть обратно в обычный С - переименовать класс в структуру, вынести из него функции, заменить конструктор на функцию инициализации, которую вызывать при старте программы и, собственно, все. P.S. Хотя нет, не все так просто. Попробую сделать сам. Вот такое получилось. Не проверял, но кажется сломать там что-то было трудно.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 29 2012, 10:40
|

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

|
Попробовал Codesourcery G++ Lite - результат тот же, malloc возвращает 0х00000008. Так что дело не в тулчейне Цитата(Сергей Борщ @ Mar 29 2012, 15:33)  Вот такое получилось. Не проверял, но кажется сломать там что-то было трудно. О, спасибо, сейчас попробую.
--------------------
Руслан
|
|
|
|
|
Mar 29 2012, 10:43
|

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

|
Если что, я занычил ссылочку на исходный вариант аллокатора от zltigo: здесь. Цитата(athlon64 @ Mar 29 2012, 16:40)  дело не в тулчейне Выкладывайте тогда makefile, помозгуем.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Mar 29 2012, 10:56
|

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

|
Цитата(Сергей Борщ @ Mar 29 2012, 15:33)  Вот такое получилось. Не проверял, но кажется сломать там что-то было трудно. Отлично работает! Цитата(AHTOXA @ Mar 29 2012, 15:43)  Если что, я занычил ссылочку на исходный вариант аллокатора от zltigo: здесь. Выкладывайте тогда makefile, помозгуем. MakeFile во вложении
--------------------
Руслан
|
|
|
|
|
Mar 30 2012, 03:23
|

Частый гость
 
Группа: Свой
Сообщений: 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))
--------------------
Руслан
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|