naliwator 0 4 июня, 2012 Опубликовано 4 июня, 2012 · Жалоба Проблема с запуском проекта для 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Desh_ 0 4 июня, 2012 Опубликовано 4 июня, 2012 · Жалоба Не телепат, но подозреваю, что проблема в сборке BSP проекта. Скомпилированный elf файл не соответствует аппаратной части проекта, зашитого в чип. Попробуйте собрать его заново. Проверьте установки в редакторе BSP. Тоже так думал, но сегодня в конце рабочего дня специально снес всю папку software, перекомпилировал аппаратную часть и заново сгенерировал BSP с программой - не помогло. Завтра с работы попробую залить исходники. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
naliwator 0 4 июня, 2012 Опубликовано 4 июня, 2012 · Жалоба А на какой версии работаете? На десятой попадал в тупиковую ситуацию: был глюк с генерированием system.h. Тогда помогало перманентное внесение изменений в SOPC и генерирование всей системы вцелом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 4 июня, 2012 Опубликовано 4 июня, 2012 · Жалоба Тоже так думал, но сегодня в конце рабочего дня специально снес всю папку software, перекомпилировал аппаратную часть и заново сгенерировал BSP с программой - не помогло. Завтра с работы попробую залить исходники. Покажите Ваши настройки BSP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Desh_ 0 5 июня, 2012 Опубликовано 5 июня, 2012 (изменено) · Жалоба А на какой версии работаете? На десятой попадал в тупиковую ситуацию: был глюк с генерированием 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 Изменено 5 июня, 2012 пользователем _Desh_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
naliwator 0 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба --instance 0 --sidp N/A --id N/A --timestamp N/A Попробуйте вставить в свою систему модуль идентификатора системы: Debug and Performance > System ID Peripheral. Ещё вопрос: это ваша первая SOPC система? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Desh_ 0 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба --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. До этого я только симулировал проекты в моделсиме, причем все работало. В железе - да, первая система. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Копейкин 0 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба Посмотрите в отчёте таймквеста, при компиляции - какая максимальная частота для вашей системы. Может многовато применяемых 80 и 64 МГц ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Desh_ 0 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба Посмотрите в отчёте таймквеста, при компиляции - какая максимальная частота для вашей системы. Может многовато применяемых 80 и 64 МГц ? При заданных 80 МГц в отчете Fmax = 87 MHz, при заданных 64 МГц Fmax = 73 MHz. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Копейкин 0 5 июня, 2012 Опубликовано 5 июня, 2012 (изменено) · Жалоба Посмотрел Вашу систему, попробуйте пересобрать, для пробы, без контроллера прерываний VIC. С ним не всегда всё ладно выходит... PS Добавлю ещё. У Вас ведь CycloneII ? для программы выделено ОЗУ 4Кбайт - это очень и очень мало, не было ошибки, что невозможно разместить программу и данные? Обращение к JTAG UART или любому устройству вызовет подключение библиотеки, что разом "съест" всё и "ещё должен останешься" :) . Выделите 16-20 КБайт... Изменено 5 июня, 2012 пользователем Копейкин Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
naliwator 0 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба В железе - да, первая система. Может быть попробуете тогда с примеров проектов? И соглашусь с Копейкин. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Desh_ 0 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба В окне 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 файл с правильной системой. для программы выделено ОЗУ 4Кбайт - это очень и очень мало, не было ошибки, что невозможно разместить программу и данные? Обращение к JTAG UART или любому устройству вызовет подключение библиотеки, что разом "съест" всё и "ещё должен останешься" :) . Выделите 16-20 КБайт... Для той программы, которую я собираюсь прошить, и килобайта достаточно (специально сделал простейшую вещь, чтобы побыстрее). Никаких предупреждений или ошибок при компиляции Eclipse не выдавал, так что, думаю, дело не в этом. Может быть попробуете тогда с примеров проектов? Для примеров наверняка нужна отладочная плата? У меня ее нет и не будет. Если получится завтра какой-нибудь готовый проект запустить на доступной мне плате, то попробую. Да, кстати. На той плате, с которой я упражняюсь, стоит EPCS с прошитым в ней другим проектом. Я пытаюсь на лету зашивать в ПЛИС свой .sof файл через JTAG, а затем и .elf, чтобы не трогать старую прошивку. Так ведь и нужно делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба Тогда почему в окне 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 именно того проекта, который загружен в кристалл). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Desh_ 0 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба 1. В окне Hardware configuration жамкните кнопку Refresh Connection. Какое имя процессора отображается после этого? 2. Убедитесь, что в процессорном ядре используется jtag debug модуль. 3. Еще раз проверьте, соответствует ли Ваша программная часть аппаратной (т.е. BSP создан из sopcinfo именно того проекта, который загружен в кристалл). 1. Нажимал много раз, остается так же, как и на скриншоте, т.е. пустота. 2. JTAG Debug используется, подключен одновременно к data_master и instruction_master. 3. Много раз уже проверял, перекомпилировал, перегенерировал, создавал проект заново... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 5 июня, 2012 Опубликовано 5 июня, 2012 · Жалоба 2. JTAG Debug используется, подключен одновременно к data_master и instruction_master. А Вы хардверную часть делаете в SOPC'е или в Qsys'е? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться