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

Проблема с запуском проекта для 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.

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


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

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

 

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

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


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

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

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


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

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

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

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


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

А на какой версии работаете? На десятой попадал в тупиковую ситуацию: был глюк с генерированием 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

Изменено пользователем _Desh_

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


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

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

 

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

 

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

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


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

--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.

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

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


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

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

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

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


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

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

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

 

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

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


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

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

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

PS

Добавлю ещё.

У Вас ведь CycloneII ?

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

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

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

Изменено пользователем Копейкин

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


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

В железе - да, первая система.

 

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

И соглашусь с Копейкин.

 

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


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

В окне 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, чтобы не трогать старую прошивку. Так ведь и нужно делать?

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


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

Тогда почему в окне 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 именно того проекта, который загружен в кристалл).

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


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

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

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

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

 

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

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

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

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


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

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

А Вы хардверную часть делаете в SOPC'е или в Qsys'е?

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


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

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

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

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

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

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

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

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

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

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