|
|
  |
NIOS для начинающих |
|
|
|
Jun 4 2012, 15:58
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551

|
Цитата(_Desh_ @ Jun 4 2012, 19:49)  Проблема с запуском проекта для 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.
--------------------
|
|
|
|
|
Jun 4 2012, 16:13
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 6-12-11
Пользователь №: 68 698

|
Цитата(naliwator @ Jun 4 2012, 19:58)  Не телепат, но подозреваю, что проблема в сборке BSP проекта. Скомпилированный elf файл не соответствует аппаратной части проекта, зашитого в чип. Попробуйте собрать его заново. Проверьте установки в редакторе BSP. Тоже так думал, но сегодня в конце рабочего дня специально снес всю папку software, перекомпилировал аппаратную часть и заново сгенерировал BSP с программой - не помогло. Завтра с работы попробую залить исходники.
|
|
|
|
|
Jun 5 2012, 06:13
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 6-12-11
Пользователь №: 68 698

|
Цитата(naliwator @ Jun 4 2012, 21:52)  А на какой версии работаете? На десятой попадал в тупиковую ситуацию: был глюк с генерированием system.h. Тогда помогало перманентное внесение изменений в SOPC и генерирование всей системы вцелом. Цитата(Stewart Little @ Jun 4 2012, 22:29)  Покажите Ваши настройки BSP. Версия 9.1. Пробовал понизить рабочую частоту до 64 МГц, перегенерировал систему, не помогло. Описание системы прилагается. Уточнил сообщение об ошибке: Verify failed between address 0x1000 and 0x148B. Память onchip_memory_instr находится по адресу 0х1000-0x1FFF. Убрал из программы обращение к JTAG UART, вроде что-то поменялось. Теперь ошибка другая: CODE 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
Сообщение отредактировал _Desh_ - Jun 5 2012, 06:15
Прикрепленные файлы
cpu.html ( 48.07 килобайт )
Кол-во скачиваний: 153
summary.html ( 95.88 килобайт )
Кол-во скачиваний: 1312
|
|
|
|
|
Jun 5 2012, 08:10
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 6-12-11
Пользователь №: 68 698

|
Цитата(naliwator @ Jun 5 2012, 11:46)  --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. До этого я только симулировал проекты в моделсиме, причем все работало. В железе - да, первая система.
|
|
|
|
|
Jun 5 2012, 08:40
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 6-12-11
Пользователь №: 68 698

|
Цитата(Копейкин @ Jun 5 2012, 12:26)  Посмотрите в отчёте таймквеста, при компиляции - какая максимальная частота для вашей системы. Может многовато применяемых 80 и 64 МГц ? При заданных 80 МГц в отчете Fmax = 87 MHz, при заданных 64 МГц Fmax = 73 MHz.
|
|
|
|
|
Jun 5 2012, 09:31
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Посмотрел Вашу систему, попробуйте пересобрать, для пробы, без контроллера прерываний VIC. С ним не всегда всё ладно выходит... PS Добавлю ещё. У Вас ведь CycloneII ? для программы выделено ОЗУ 4Кбайт - это очень и очень мало, не было ошибки, что невозможно разместить программу и данные? Обращение к JTAG UART или любому устройству вызовет подключение библиотеки, что разом "съест" всё и "ещё должен останешься"  . Выделите 16-20 КБайт...
Сообщение отредактировал Копейкин - Jun 5 2012, 09:54
|
|
|
|
|
Jun 5 2012, 09:36
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551

|
Цитата(_Desh_ @ Jun 5 2012, 12:10)  В железе - да, первая система. Может быть попробуете тогда с примеров проектов? И соглашусь с Копейкин.
--------------------
|
|
|
|
|
Jun 5 2012, 13:49
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 6-12-11
Пользователь №: 68 698

|
В окне Nios II Elf Section Properties название процессора соответствует файлу .sopcinfo.  Тогда почему в окне Run Configurations > Target Connection написано The expected CPU name does not match the selected target CPU name? И почему в поле Processors > Name пусто? В ПЛИС при этом прошит .sof файл с правильной системой.  Цитата(Копейкин @ Jun 5 2012, 13:31)  для программы выделено ОЗУ 4Кбайт - это очень и очень мало, не было ошибки, что невозможно разместить программу и данные? Обращение к JTAG UART или любому устройству вызовет подключение библиотеки, что разом "съест" всё и "ещё должен останешься"  . Выделите 16-20 КБайт... Для той программы, которую я собираюсь прошить, и килобайта достаточно (специально сделал простейшую вещь, чтобы побыстрее). Никаких предупреждений или ошибок при компиляции Eclipse не выдавал, так что, думаю, дело не в этом. Цитата(naliwator @ Jun 5 2012, 13:36)  Может быть попробуете тогда с примеров проектов? Для примеров наверняка нужна отладочная плата? У меня ее нет и не будет. Если получится завтра какой-нибудь готовый проект запустить на доступной мне плате, то попробую. Да, кстати. На той плате, с которой я упражняюсь, стоит EPCS с прошитым в ней другим проектом. Я пытаюсь на лету зашивать в ПЛИС свой .sof файл через JTAG, а затем и .elf, чтобы не трогать старую прошивку. Так ведь и нужно делать?
|
|
|
|
|
Jun 5 2012, 14:07
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(_Desh_ @ Jun 5 2012, 17:49)  Тогда почему в окне 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 именно того проекта, который загружен в кристалл).
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Jun 5 2012, 15:05
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 6-12-11
Пользователь №: 68 698

|
Цитата(Stewart Little @ Jun 5 2012, 18:07)  1. В окне Hardware configuration жамкните кнопку Refresh Connection. Какое имя процессора отображается после этого? 2. Убедитесь, что в процессорном ядре используется jtag debug модуль. 3. Еще раз проверьте, соответствует ли Ваша программная часть аппаратной (т.е. BSP создан из sopcinfo именно того проекта, который загружен в кристалл). 1. Нажимал много раз, остается так же, как и на скриншоте, т.е. пустота. 2. JTAG Debug используется, подключен одновременно к data_master и instruction_master. 3. Много раз уже проверял, перекомпилировал, перегенерировал, создавал проект заново...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|