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

 
 
> Microblaze не запускается, если в коде зарезервировать два больших массива
TABKP
сообщение Apr 28 2012, 09:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 19-05-11
Пользователь №: 65 130



ПЛИС Virtex 4 XC4VLX80. Создал процессор. Память BRAM используется для команд и данных. Объем 64К.
Написал маленькую программу. Отладил. Работает. В программе используются два массива данных. Встала необходимость увеличить их размер до 1,5 кбайт каждый. В результате программа перестала работать - она даже не стартует. Если уменьшить размер массивов в половину - работает. Увеличил объем используемой BRAM до 128К - не изменилось НИЧЕГО. Такое ощущение, что ему не памяти не хватает, а где-то прописано ограничение на длину последовательно размещаемых данных в памяти. Как побороть проблему?

Инициализация:
u8 DataBuf1[1500];
u8 DataBuf2[1500];
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TABKP
сообщение Apr 28 2012, 11:23
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 19-05-11
Пользователь №: 65 130



Да я честно говоря не знаю как линкскрипты писать. Все настройки по умолчанию стоят.

Попытался использовать динамическое выделение памяти:

u8 *DataBuf;
DataBuf = (u8 *)malloc(1500 * sizeof(u8));
if(DataBuf == NULL) XGpio_DiscreteSet(&Gpio0, GPIO_0_CHANNEL1, 0x07);

память не выделилась. Указатель нулевой возвращается. Да чтож такое. Нет в жизни счастья!

Видимо линкскрипт в этом окне надо править. Вопрос что и где?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:17
Рейтинг@Mail.ru


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