Перейти к содержанию
    

Память программ в MicroBlaze

Доброго времени суток всем.

Проблемма в том что после компиляции EDK вы даёт:

text data bss dec hex filename

7404 8124 16 15544 3cb8 TestApp_Memory/executable.elf

То есть 7404 байта занимает моя программа в памяти контроллера, но в то же время софтварный дебугер вызываемый из EDK показывает что программа занимает места чуть более полукилобайта. Почему так происходит и как это исправить?

К этой же проблемме добавляется ещё одна. Как видно вся программа и переменные не занимают и 16k

+ ещё 0х2000 я выделил на стэк и + 0х100 на хъюдж, а памяти у контроллера при генерации заложено 32к. При попытке добавить ещё один массив переменных EDK выдаёт:

region ilmb_cntlr_dlmb_cntlr is full (TestApp_Memory/executable.elf section bss_stack)

Хотя до добавления дополнительного массива bss_stack вообще равнялся нулю. Как бы то нибыло по моим расчётам у меня ещё должно оставаться 8к памяти, но она не хочет себя проявлять. Подозреваю нужно саморучно править линкер скрипт, но пока не разобрался как он работает. Подскажите как решить эти мои две проблеммы.

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выложите проект, или часть проекта.

Проэкт в EDK 7.1.*

float fCalculationArray[3200] = {3200}; -- 291 строка

short iSampleRadiusValue[1] = {1}; -- 212

Не влезает даже первый массив. Можно доработать и сделать реалтайм обработку, но непонятности с этим зверем микроблейзом останутся, а впереди ещё один проэкт на этой машинке и этой же плате, и рано или поздно я столкнусь опять с этой проблеммой.

Спасибо за помощь.

test3.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скачал ваш проект. Только нигде не нашел вашего:

float fCalculationArray[3200] = {3200}; -- 291 строка

short iSampleRadiusValue[1] = {1}; -- 212

??????

Добавил ручками.. никаких ошибок ЕДК не выдал! (юзаю ЕДК 9.1)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скачал ваш проект. Только нигде не нашел вашего:

??????

Добавил ручками.. никаких ошибок ЕДК не выдал! (юзаю ЕДК 9.1)

упс... сори забыл программу вставить исправил

test3.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В решении вашей проблемы помогут следующие ответы с сайта xilinx: Answer Record:21205 и Answer Record:21501.

Не стал глубоко вникать в вашу проблему (что и как работает.. закоментировал строки с 215 по 219, т.к. там выдавал ошибку кода), как всегда начал с удаления линкер скрипта и изменил условия компиляции проекта (не оптимизировать)... Ошибок нет! :-) Удачи !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо очень позновательно.

Может вы заодно знаете почему моделсим отказывается дёргать лапками если массив на 212 строчке инициализировать : short iSampleRadiusValue[1200] = {1};?

А если не инициализировать: short iSampleRadiusValue[1200]; -- то дергает за милую душу.

Тоже самое если объявить массив глобально... не дёргает лапками.

Ещё раз спасибо за помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...