Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » ARM
Ошибка выделения памяти, standAlone приложение, malloc(), SAM9260
Fireball
Добавлено 15.10.2010 00:45
0
Сообщение: 1
Fireball
0

Пункты: 1075
Регистрация: 16.02.2010
Доброго времени суток!

При написании standAlone приложения в среде IAR 5.4 и последующем запуске на демо-плате SK-AT91SAM9XE512 возникла следующая проблема:
При выделении памяти функцией malloc() получаю нулевой указатель, то есть память выделить не получается.
Для демонстрации ошибки я взял проект getting-started-project и перед циклов в функции main() сделал следующий блок:

Код

pointer = (void*) malloc(16777216);
if (pointer == 0)
printf("Fail\r\n");
else
printf("Success\r\n");

Предварительно объявив в начале функции void* pointer;
В результате выполнения получаю Fail.

Каким образом можно корректно выделить кусок памяти для работы?

Заранее спасибо за ответ.
Спуститься к концу Подняться к началу
Персональная информация
Artemius
Добавлено 15.10.2010 19:28 Сообщение: 2
Artemius
0

Пункты: 3655
Регистрация: 02.12.2009
Посмотрел этот getting-started-project, там в sdram.icf указан размер для кучи равный нулю.
Код
define symbol __ICFEDIT_size_heap__ = 0x0;

Попробуте заменить его, например, на
Код
define symbol __ICFEDIT_size_heap__ = 16777216;

Ну или еще побольше.

А еще можно на electronix.ru спросить, там целый раздел, посвященный IAR'у есть.
Спуститься к концу Подняться к началу
Персональная информация
Fireball
Добавлено 15.10.2010 22:05 Сообщение: 3
Fireball
0

Пункты: 1075
Регистрация: 16.02.2010
Память выделилась, но размер образа чуток (на размер кучи) вырос...образ грузился около 1,5 минут, как временное решение подойдет, но не более...
Спасибо за помощь!
Спуститься к концу Подняться к началу
Персональная информация
Artemius
Добавлено 16.10.2010 00:06 Сообщение: 4
Artemius
0

Пункты: 3655
Регистрация: 02.12.2009
Интересно... Собрал этот пример, действительно размер выходного файла увеличивается на размер задаваемой кучи. Попробовал Gettingstarted от LPC3250 и какой-то от imx31 (у них тоже есть SDRAM), там такого эффекта нет, какой размер кучи ни выставляй, размер выходного файла один.
Кстати, Atmel'овский icf IAR не дает редактировать своими средствами, говорит используйте текстовой редактор, а с NXP'шными и Freescale'вскими такого нет.

Видимо придется изучать документацию на линкер и искать что там Atmel намудрил...
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » ARM