Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: программа Nios в ончип памяти
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
torik
Всем привет.

Есть система простейшая. Nios работает с памятью on-chip. EPCS контроллер отсутствует (занят другим процессором).

Возникает проблема: если on-chip памяти в SOPC-builder не указывать файл инициализации, все компилится, заливается и работает.

Далее я преобразую elf в hex и указываю в SOPC-builder на полученный файл , все пересобираю, лью sof - все работает.

Теперь мне надо поменять программу. И тут эклипс выдает фокус - он отказывается компилить проект вообще, и bsp тоже. При этом выдает ошибку:

Код
Description    Resource    Path    Location    Type
*** multiple target patterns.  Stop.    mem_init.mk    /mi_can2_bsp    line 195    C/C++ Problem



В meminit.mk эта ошибка. Долго думал чё делать. До тех пор пока не удалил из ситемы память он-чип, не добавил новую с другим именем, проект и не подумал компилиться. Это как-то слегка неудобно. Как такую проблему обойти?







vadimuzzz
ничего не понял. hex же автоматом генерится. потом компиляция (она быстрая, только ассемблер). какие проблемы?
alexadmin
Цитата(torik @ May 6 2011, 09:31) *
Далее я преобразую elf в hex и указываю в SOPC-builder на полученный файл , все пересобираю, лью sof - все работает.


На мой взгляд тут ошибка - не надо в SOPC Builder указывать на этот файл, лучше просто положить сгенеренный файл в каталог проекта, он подхватится как файл по-умолчанию.
torik
Каким таким автоматом?
Компилирую прогу в эклипсе, hex при этом ниоткуда не возьмется, а будет elf. Верно?
Дальше с помощью ниосовской консоли преобразую elf в hex. Указываю полученный файл оничиповской памяти (как на рисунке). После этого необходимо компилировать проект, и происходит это не так уж и быстро.

И все бы ничего, но больше программу в эклипсе не скомпилировать!

А если заглянуть в автоматически сгенеренный файл mem_cpu1.hex, то в нем наблюдаем пустоту. Что, может не указывать какой-то другой файл, а заменить mem_cpu1.hex?
Stewart Little
Цитата(torik @ May 6 2011, 09:31) *
EPCS контроллер отсутствует (занят другим процессором).

Правильно и я понял, что у Вас в проекте два (или более) ниоса? Если так, то не конфликтуют ли имена файлов onchip_ram для разных процессоров?
torik
Два процесоора, но имена не конфликтуют, все разные...

Сейчас оставил только инициализацию ончипа только по-умолчанию, пересобрал сопц, перекомпилил ква провект. Падла-эклипс выдает ошибку. И так будет пока не добавлю новую память вместо конфликтной sad.gif
vadimuzzz
Цитата(torik @ May 6 2011, 14:08) *
Каким таким автоматом?
Компилирую прогу в эклипсе, hex при этом ниоткуда не возьмется, а будет elf. Верно?

хм. а ниос-иде (устаревшая, типа) автоматом hexы генерила, точно помню
Цитата
А если заглянуть в автоматически сгенеренный файл mem_cpu1.hex, то в нем наблюдаем пустоту. Что, может не указывать какой-то другой файл, а заменить mem_cpu1.hex?

я бы так сделал. еще проверьте галку "smart compilation" в квартусе.
torik
Ща проверю.

Да, так вроде бы стало работать, спасибо. Подменяю именно mem_cpu1.hex
Stewart Little
Цитата(torik @ May 6 2011, 11:28) *
Два процесоора, но имена не конфликтуют, все разные...

Все равно я ничего не понял - ни проблемы, ни причины ее разрешения wacko.gif , как-то все очень сумбурно изложено...
Как установка smart compiation в квартусе может влиять на процесс компиляции в эклипсе???
Она, имхо, поможет только тогда, когда у эклипса получается обновлять onchip_hex.
А из вопроса следует, что проблема именно с получением нового хекса. Или я не прав?

BTW: после регенерации системы в SOPC Builder'е не забываете BSP рефрешить?
torik
Цитата
Все равно я ничего не понял - ни проблемы, ни причины ее разрешения , как-то все очень сумбурно изложено...

Да, я такой.

Цитата
Как установка smart compiation в квартусе может влиять на процесс компиляции в эклипсе???

Никак, я говорю что помогло не указывать оничип памяти какой-то свой файл инициализации, а оставить тот что по-умолчанию: mem_cpu1.hex.
И с помощью консоли я преобразую elf в hex, подменяя изначально пустой (так как эклипс сам не генерит) mem_cpu1.hex.

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





Цитата
BTW: после регенерации системы в SOPC Builder'е не забываете BSP рефрешить?

Нет
alexadmin
Цитата(torik @ May 6 2011, 11:08) *
Каким таким автоматом?
Компилирую прогу в эклипсе, hex при этом ниоткуда не возьмется, а будет elf. Верно?


Верно. Я имею в виду, что не надо ставить опцию "non-default init file". Сгенерировали *hex, переложили его в каталог квартус-проекта и запускаете компиляцию в квартусе.
torik
Ага, и хрен знает отчего меня дернуло эту опцию поставить...
naliwator
Цитата(torik @ May 6 2011, 12:23) *
Т.е. проблем с получением хекса не было. Проблема в том, что когда я указываю в сопцбилдере оничиповской памяти файл инициализации, отличный от того что по-умолчанию, эклипс перестает компилировать проект.


Только что сделал простейший проектик для проверки - всё компилится и работает.

Когда создавал систему, указал на свой файл инициализации (которого на тот момент ещё не было в помине).
Сгенерировал систему, во время генерирования было сообщение, что, дескать, нету файла инициализации, ну и ладно.
Собрал BSP, hello word, сконвертировал elf в hex, положил в папку с проектом.
Поставил smart compilation, скомплировал и прошил sof. Всё работает.
Изменил программу, сконвертировал в hex, скомпилировал и прошил sof. Всё опять работает.

Вроде проблем быть не должно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.