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

 
 
> GCC ARM + malloc-free
athlon64
сообщение Mar 26 2012, 12:14
Сообщение #1


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

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



МК STM32F207
Eclipse + GCC Yagarto

Никак не могу заставить работать менеджер памяти из стандартной библиотеки си.
Добавил в проект syscalls.c взятый на форуме.
Скрипт линкера (flash.icf) гибрид, но вроде правильный.

Всё компилируется без ошибок, но функция malloc всегда возвращает 0x00000008.

syscalls.c и flash.icf прикладываю.
Прикрепленные файлы
Прикрепленный файл  flash.icf.txt ( 1.22 килобайт ) Кол-во скачиваний: 168
Прикрепленный файл  syscalls.c.txt ( 2.99 килобайт ) Кол-во скачиваний: 80
 


--------------------
Руслан
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
athlon64
сообщение Mar 29 2012, 09:34
Сообщение #2


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

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



Заменил Yagarto на DevkitPRO, теперь процессор виснет при вызове malloc sm.gif
На Yagarto пробовал BGET, у него функция bget() всё время возвращала чушь типа 0x801C0000, т.е. вообще не из области ОЗУ.

Цитата(XVR @ Mar 29 2012, 13:38) *
Гм. А не стоит ли у вас в libc вместо malloc затычка (как в syscalls.c) ?

Не знаю. Как уточнить? Newlib в yagarto в виде объектных файлов... хотя исходники тоже отдельно выложены.

Цитата(Сергей Борщ @ Mar 29 2012, 13:42) *
zltigo выкладывал тут самописный менеджер памяти. Использую его вместо штатного - компактный, не тянет за собой кучу ненужного из библиотек. Обернул его в плюсы, добавил Mutex для многопотчности. Прилагаю.

Спасибо, но, к сожалению, с плюсами у меня пока не очень. Попробую вариант zltigo тоже

Сообщение отредактировал athlon64 - Mar 29 2012, 09:44


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


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #4


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

Группа: Свой
Сообщений: 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
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 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

Сообщений в этой теме
- athlon64   GCC ARM + malloc-free   Mar 26 2012, 12:14
- - athlon64   неужели никто не может подсказать?   Mar 28 2012, 16:47
|- - AHTOXA   Посмотрите (выдайте на отладочную печать) значение...   Mar 28 2012, 18:14
|- - AHTOXA   Дополнение. Проверьте ещё переменную heap, равна л...   Mar 28 2012, 19:17
|- - athlon64   Цитата(AHTOXA @ Mar 29 2012, 00:17) Допол...   Mar 29 2012, 05:17
|- - AHTOXA   heap и &_heap в порядке. Попробуйте опции линк...   Mar 29 2012, 06:03
||- - athlon64   Цитата(AHTOXA @ Mar 29 2012, 11:03) heap ...   Mar 29 2012, 06:54
||- - AHTOXA   А -nostartfiles?   Mar 29 2012, 07:19
||- - athlon64   Цитата(AHTOXA @ Mar 29 2012, 12:19) А -no...   Mar 29 2012, 07:32
||- - AHTOXA   Мне обычно хватает -nostartfiles. А может это Yaga...   Mar 29 2012, 07:44
|- - XVR   Цитата(athlon64 @ Mar 29 2012, 09:17) При...   Mar 29 2012, 08:38
- - kolobochishe   У меня была проблема когда в забыл установить разм...   Mar 29 2012, 03:26
- - athlon64   Не я один столкнулся с подобной проблемой: http://...   Mar 29 2012, 07:57
|- - Сергей Борщ   zltigo выкладывал тут самописный менеджер памяти. ...   Mar 29 2012, 08:42
- - Сергей Борщ   QUOTE (athlon64 @ Mar 29 2012, 12:34) Спа...   Mar 29 2012, 10:33
|- - athlon64   Попробовал Codesourcery G++ Lite - результат тот ж...   Mar 29 2012, 10:40
||- - athlon64   Цитата(Сергей Борщ @ Mar 29 2012, 15:33) ...   Mar 29 2012, 10:56
||- - AHTOXA   Цитата(athlon64 @ Mar 29 2012, 16:56) Mak...   Mar 29 2012, 11:32
|- - AHTOXA   Если что, я занычил ссылочку на исходный вариант а...   Mar 29 2012, 10:43


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

 


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


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