Jump to content

    
Sign in to follow this  
AlexBel

NIOS для начинающих

Recommended Posts

Проблема с запуском проекта для NIOS из-под Eclipse. Как я понимаю (поправьте, если не так), надо иметь на руках файлы .sof и .elf. Оба файла имеются. Итак, включаю железку, шью .sof (Quartus Programmer), затем из-под eclipse выбираю Run As->Nios Hardware. Дальше оболочка меня спрашивает настройки, я их все указываю, но прошивка не загружается - все время выдает Download ELF file process failed. В консоли выводится что-то типа Verify failed at 0x10000 to 0x14FFFF или что-то в этом роде. По адресу 0x10000-0x130xxx (не помню точно) у меня в системе находится onchip_memory. К шине подключена правильно, Reset Vector и Exception Vector указывают на нее. Из периферии оставил только PIO, JTAG UART, Vectored Interrupt Controller.

 

На форуме Альтеры куча подобных вопросов, но конкретных ответов нет - все время советуют проверить тайминги и сигналы clk, reset. Но раз Quartus предупреждений или ошибок при компиляции не выдал, то ошибок времянки нет. Clk идет с PLL (80 МГц), reset - лог. 1 (пока так, для простоты). Подскажите, пожалуйста, что еще может быть не так?

 

Не телепат, но подозреваю, что проблема в сборке BSP проекта. Скомпилированный elf файл не соответствует аппаратной части проекта, зашитого в чип. Попробуйте собрать его заново. Проверьте установки в редакторе BSP.

Share this post


Link to post
Share on other sites
Не телепат, но подозреваю, что проблема в сборке BSP проекта. Скомпилированный elf файл не соответствует аппаратной части проекта, зашитого в чип. Попробуйте собрать его заново. Проверьте установки в редакторе BSP.

 

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

Share this post


Link to post
Share on other sites

А на какой версии работаете? На десятой попадал в тупиковую ситуацию: был глюк с генерированием system.h. Тогда помогало перманентное внесение изменений в SOPC и генерирование всей системы вцелом.

Share this post


Link to post
Share on other sites
Тоже так думал, но сегодня в конце рабочего дня специально снес всю папку software, перекомпилировал аппаратную часть и заново сгенерировал BSP с программой - не помогло. Завтра с работы попробую залить исходники.

Покажите Ваши настройки BSP.

Share this post


Link to post
Share on other sites
А на какой версии работаете? На десятой попадал в тупиковую ситуацию: был глюк с генерированием system.h. Тогда помогало перманентное внесение изменений в SOPC и генерирование всей системы вцелом.

 

Покажите Ваши настройки BSP.

 

Версия 9.1. Пробовал понизить рабочую частоту до 64 МГц, перегенерировал систему, не помогло. Описание системы прилагается. Уточнил сообщение об ошибке: Verify failed between address 0x1000 and 0x148B. Память onchip_memory_instr находится по адресу 0х1000-0x1FFF.

 

Убрал из программы обращение к JTAG UART, вроде что-то поменялось. Теперь ошибка другая:

Downloading 00001000 ( 0%)
Downloaded 1KB in 0.0s        

Verifying 00001000 ( 0%)
Verified OK                         
Starting processor at address 0x00001020
/cygdrive/d/Altera/Quartus91/nios2eds/bin/nios2-download: line 595:  2152 Hangup 
nios2-gdb-server --cable 'USB-Blaster [uSB-0]' --device 1 --instance 0 --sidp N/A --id N/A --timestamp N/A
--accept-bad-sysid --go --tcpport none --write-pid
/cygdrive/d/Altera/Quartus91/User/Erofeev/simple/software/simple/nios2-download.pid
/cygdrive/d/Altera/Quartus91/User/simple/software/simple/simple.elf.srec

cpu.html

summary.html

Edited by _Desh_

Share this post


Link to post
Share on other sites

--instance 0 --sidp N/A --id N/A --timestamp N/A

 

Попробуйте вставить в свою систему модуль идентификатора системы: Debug and Performance > System ID Peripheral.

 

Ещё вопрос: это ваша первая SOPC система?

Share this post


Link to post
Share on other sites
--instance 0 --sidp N/A --id N/A --timestamp N/A

 

Попробуйте вставить в свою систему модуль идентификатора системы: Debug and Performance > System ID Peripheral.

 

Ещё вопрос: это ваша первая SOPC система?

 

При загрузке ELF файла я включил настройки Ignore mismatched system ID, Ignore mismatched timestamp ID.

До этого я только симулировал проекты в моделсиме, причем все работало. В железе - да, первая система.

Share this post


Link to post
Share on other sites

Посмотрите в отчёте таймквеста, при компиляции - какая максимальная частота для вашей системы.

Может многовато применяемых 80 и 64 МГц ?

Share this post


Link to post
Share on other sites
Посмотрите в отчёте таймквеста, при компиляции - какая максимальная частота для вашей системы.

Может многовато применяемых 80 и 64 МГц ?

 

При заданных 80 МГц в отчете Fmax = 87 MHz, при заданных 64 МГц Fmax = 73 MHz.

Share this post


Link to post
Share on other sites

Посмотрел Вашу систему, попробуйте пересобрать, для пробы, без контроллера прерываний VIC.

С ним не всегда всё ладно выходит...

PS

Добавлю ещё.

У Вас ведь CycloneII ?

для программы выделено ОЗУ 4Кбайт - это очень и очень мало, не было ошибки, что невозможно разместить программу и данные?

Обращение к JTAG UART или любому устройству вызовет подключение библиотеки, что разом "съест" всё и "ещё должен останешься" :) .

Выделите 16-20 КБайт...

Edited by Копейкин

Share this post


Link to post
Share on other sites

В окне Nios II Elf Section Properties название процессора соответствует файлу .sopcinfo.

 

image_4fce0880ca161_small.jpg

 

Тогда почему в окне Run Configurations > Target Connection написано The expected CPU name does not match the selected target CPU name? И почему в поле Processors > Name пусто? В ПЛИС при этом прошит .sof файл с правильной системой.

 

image_4fce0bdc38111_small.jpg

 

для программы выделено ОЗУ 4Кбайт - это очень и очень мало, не было ошибки, что невозможно разместить программу и данные?

Обращение к JTAG UART или любому устройству вызовет подключение библиотеки, что разом "съест" всё и "ещё должен останешься" :) .

Выделите 16-20 КБайт...

 

Для той программы, которую я собираюсь прошить, и килобайта достаточно (специально сделал простейшую вещь, чтобы побыстрее). Никаких предупреждений или ошибок при компиляции Eclipse не выдавал, так что, думаю, дело не в этом.

 

Может быть попробуете тогда с примеров проектов?

 

Для примеров наверняка нужна отладочная плата? У меня ее нет и не будет. Если получится завтра какой-нибудь готовый проект запустить на доступной мне плате, то попробую.

 

Да, кстати. На той плате, с которой я упражняюсь, стоит EPCS с прошитым в ней другим проектом. Я пытаюсь на лету зашивать в ПЛИС свой .sof файл через JTAG, а затем и .elf, чтобы не трогать старую прошивку. Так ведь и нужно делать?

Share this post


Link to post
Share on other sites
Тогда почему в окне Run Configurations > Target Connection написано The expected CPU name does not match the selected target CPU name? И почему в поле Processors > Name пусто? В ПЛИС при этом прошит .sof файл с правильной системой.

1. В окне Hardware configuration жамкните кнопку Refresh Connection. Какое имя процессора отображается после этого?

2. Убедитесь, что в процессорном ядре используется jtag debug модуль.

3. Еще раз проверьте, соответствует ли Ваша программная часть аппаратной (т.е. BSP создан из sopcinfo именно того проекта, который загружен в кристалл).

Share this post


Link to post
Share on other sites
1. В окне Hardware configuration жамкните кнопку Refresh Connection. Какое имя процессора отображается после этого?

2. Убедитесь, что в процессорном ядре используется jtag debug модуль.

3. Еще раз проверьте, соответствует ли Ваша программная часть аппаратной (т.е. BSP создан из sopcinfo именно того проекта, который загружен в кристалл).

 

1. Нажимал много раз, остается так же, как и на скриншоте, т.е. пустота.

2. JTAG Debug используется, подключен одновременно к data_master и instruction_master.

3. Много раз уже проверял, перекомпилировал, перегенерировал, создавал проект заново...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this