Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенос проекта из 11.0 quartus в 15.1 с процессором nios
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Kostochkin
Здравствуйте,
Есть проект в 11.0 quartus c sopc buider и прогой в eclipse, cyclone 4, проект рабочий.
Пытаюсь перенести его в quartus 15.1 и соответственно qsys.
С начала перенес проект sopc builder в qsys в 11 quartus.
Потом открыл весь проект в 15 quartus. Подредактировал qsys, сгененрировал,
отредактировал проект в quartus, скомпилировал, все отлично.
Открыл проект в eclipse(nios 2 15.1), отредактировал, сгенерировал bsp, скомпилировал, все отлично.
Прошил fpga, а вот при запуске программы в nios вылезает ошибка:
"downloading elf process failed"
При загрузке во флеш программа не запускается...
В чем проблема?
И вообще можно ли так делать?
Спасибо.
Zwerg_nase
Цитата(Kostochkin @ Jun 14 2016, 12:21) *
Прошил fpga, а вот при запуске программы в nios вылезает ошибка:
"downloading elf process failed"
При загрузке во флеш программа не запускается...
В чем проблема?
И вообще можно ли так делать?
Спасибо.


А каким образом Вы загружаете elf в FPGA?
Kostochkin
через jtag в eclipse, run->run_configuration,
выбрал проект, нашел jtag, и нажал apply и run.
Zwerg_nase
Цитата(Kostochkin @ Jun 15 2016, 12:17) *
через jtag в eclipse, run->run_configuration,
выбрал проект, нашел jtag, и нажал apply и run.

Попробуйте залить elf через NIOS II Command Shell используя команду nios2-download –g <file_name>.elf
Kostochkin
выдал ошибку
"Verify failed between address 0xD000000 and 0xD0055FB"

по адресу 0x0D000000 - 0x0D1FFFFF лежит generic tri-state controller.
Zwerg_nase
Цитата(Kostochkin @ Jun 15 2016, 14:34) *
выдал ошибку
"Verify failed between address 0xD000000 and 0xD0055FB"

по адресу 0x0D000000 - 0x0D1FFFFF лежит generic tri-state controller.


Похоже, что elf не соответствует sof.

Возможно, стоит проверить, тот ли модуль qsys вы используете при компиляции FPGA проекта, а также, правильный ли файл sopcinfo используется в проекте для Eclipse.
gridinp
Цитата(Kostochkin @ Jun 15 2016, 12:17) *
через jtag в eclipse, run->run_configuration,
выбрал проект, нашел jtag, и нажал apply и run.




может галочки стоят?
Kostochkin
Цитата(gridinp @ Jun 15 2016, 16:08) *


может галочки стоят?

Галочки не стоят


Цитата(Zwerg_nase @ Jun 15 2016, 15:19) *
Похоже, что elf не соответствует sof.

Возможно, стоит проверить, тот ли модуль qsys вы используете при компиляции FPGA проекта, а также, правильный ли файл sopcinfo используется в проекте для Eclipse.


Да вроде все соответствует...
может это как-то связонно с флешкой, которая подключена в qsys через tri-state controller?
Stewart Little
Цитата(Kostochkin @ Jun 16 2016, 12:46) *
может это как-то связонно с флешкой, которая подключена в qsys через tri-state controller?

Куда указывает вектор сброса процессора?
Что с галкой "Allow code at reset" в настройках BSP?
Kostochkin
Цитата(Stewart Little @ Jun 16 2016, 14:05) *
Куда указывает вектор сброса процессора?
Что с галкой "Allow code at reset" в настройках BSP?


Reset vector указывает на ext_flash(generic tri-state controller, а он в свою очередь на flash tristate bridge pinsharer), смещение 0x0.
Галочка "Allow code at reset" не установлена.
Stewart Little
Цитата(Kostochkin @ Jun 17 2016, 11:16) *
Reset vector указывает на ext_flash(generic tri-state controller, а он в свою очередь на flash tristate bridge pinsharer), смещение 0x0.
То есть после сброса сегмент кода располагается во внешнем Flash-ПЗУ?

Цитата
Галочка "Allow code at reset" не установлена.
В этом случае система считает, что по сбросу должно стартовать не приложение, а что-то другое (например, в случае EPCS-контроллера, копировщик).

Отсюда вопросы:
- должно ли Ваше приложение стартовать сразу после сброса?
- как Вы собираетесь записать Ваш объектник во внешнюю флэш?

В общем и целом, Вам нужно разобраться с порядком старта ноиса, расположением сегментов (кода, данных, ...) и т.п.


Kostochkin
Цитата(Stewart Little @ Jun 17 2016, 12:39) *
То есть после сброса сегмент кода располагается во внешнем Flash-ПЗУ?

Да.
Цитата(Stewart Little @ Jun 17 2016, 12:39) *
Отсюда вопросы:
- должно ли Ваше приложение стартовать сразу после сброса?
- как Вы собираетесь записать Ваш объектник во внешнюю флэш?

Да, должно. Записываю через flash programmer в nios.
Stewart Little
Цитата(Kostochkin @ Jun 17 2016, 13:32) *
Да.
Да, должно. Записываю через flash programmer в nios.
Ну так укажите в BSP, что по сбросу должно Ваше приложение стартовать.
Kostochkin
попробую

поставил галочку "allow code at reset" , результат тот же...
gridinp
надо видимо по шагам разбираться, смотреть *.map, что в программе лежит по адресам 0xD000000-0xD0055FB
потом разбираться почему оно там, bsp смотреть

для компоновщика какие адреса указаны?


Kostochkin
по адресу 0x0D000000 - 0x0D1FFFFF лежит generic tri-state controller для флешки и внеш памяти.
gridinp
я не уверен, что это тоже самое, у меня была подобная проблема, когда я шил epcs через quartus,
были расхождения в начальном загрузчике который шил quartus и который был в elf, точно также
ругалось на несравнение, не помню как вылечил

и всё же, что по этим адресам в map?

Zwerg_nase
Цитата(Kostochkin @ Jun 16 2016, 12:46) *
Да вроде все соответствует...
может это как-то связонно с флешкой, которая подключена в qsys через tri-state controller?


Посмотрите пост по этой ссылке http://www.alteraforum.com/forum/showthrea...9768&page=3.
Может, что-то из него Вам поможет.
Kostochkin
Разобрался, компоновщик указывал почему-то не на on-chip ram, а на external flash,
хотя должен был на флешку указывать только в reset, исправил, заработало.
спасибо всем.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.