|
|
  |
NIOS для начинающих |
|
|
|
Jun 6 2012, 03:02
|
Участник

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

|
Цитата(Stewart Little @ Jun 5 2012, 19:57)  А Вы хардверную часть делаете в SOPC'е или в Qsys'е? SOPC. Использую Altera Complete Design Suite 9.1.
|
|
|
|
|
Jun 6 2012, 06:51
|
Участник

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

|
Попробовал делать то же самое через Nios II IDE. Во время компиляции программы он кладет файл onchip_memory.hex в папку с проектом аппаратной части. И вот, во время перекомпиляции аппаратной части Quartus выводит предупреждение: Warning: Width of data items in "onchip_memory.hex" is greater than the memory width. Wrapping data items to subsequent addresses. Какая настройка за это отвечает, и как избавиться от этой ошибки? Может быть поэтому при прошивке и возникает ошибка Verify failed between address 0x1000 and 0x148B?
|
|
|
|
|
Jun 6 2012, 10:38
|

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

|
Цитата(_Desh_ @ Jun 6 2012, 10:51)  И вот, во время перекомпиляции аппаратной части Quartus выводит предупреждение: Warning: Width of data items in "onchip_memory.hex" is greater than the memory width. Wrapping data items to subsequent addresses. Какая настройка за это отвечает, и как избавиться от этой ошибки? Это не ошибка, а предупреждение. На наго вполне можно забить. Но если очень сильно раздражает, то поиграйте настройками в Assignment - Settings - Compilation Process Settings - More Settings - Reading or Writing Hexadecimal (.hex) File in byte addresable mode Для того, чтобы сделать эту настройку глобальной, откройте в квартусе редактор hex-файла, и в меню Tools - Options - Memory Editor установите или сбросьте соответствующую галку. Но с Вашей проблемой все вышеизложенное напрямую не связано. У Вас, скорее всего, или где-то "ошибка на внимание", или проблема в железе/драйверах.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Jun 6 2012, 11:27
|

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

|
Цитата(_Desh_ @ Jun 5 2012, 17:49)  Для примеров наверняка нужна отладочная плата? У меня ее нет и не будет. Если получится завтра какой-нибудь готовый проект запустить на доступной мне плате, то попробую. Для простейшего проекта многое и не требуется: самый простейший проект - это тактовый вход и 5кб памяти. Это чтобы попробовать. Какой у вас чип? На какой пин подаётся тактовый сигнал? Цитата(_Desh_ @ Jun 5 2012, 17:49)  Да, кстати. На той плате, с которой я упражняюсь, стоит EPCS с прошитым в ней другим проектом. Я пытаюсь на лету зашивать в ПЛИС свой .sof файл через JTAG, а затем и .elf, чтобы не трогать старую прошивку. Так ведь и нужно делать? Совершенно верно.
--------------------
|
|
|
|
|
Jun 6 2012, 16:25
|
Участник

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

|
В общем, решил я попробовать сделать все то же самое, только в Nios II IDE. При попытке прошиться из-под него выдавались такие же ошибки... пока я случайно (после чтения темы http://electronix.ru/forum/index.php?showtopic=103410) не заметил, что после компиляции программы IDE (и, видимо, Eclipse тоже) записывает в папку с аппаратным проектом файл onchip_memory.hex. Когда я после очередной неудачной попытки лез в Quartus, что-нибудь менял и перекомпилировал, он подцеплял этот файл, и генерировал .sof уже с прошивкой Nios. Получается, что после конфигурации ПЛИС через Quartus Programmer в устройство уже была залита рабочая программа! А я, следуя инструкциям Альтеры, пытался прошить .elf в уже работающее устройство. Может, дело в этом? В любом случае, если следовать совету Stewart Little из упомянутой темы и загружать проект только через Quartus Programmer, то все работает. Уважаемые naliwator, Stewart Little, Копейкин, большое спасибо за советы! Правда, теперь непонятно, как дебажить программу без Eclipse или IDE.
Сообщение отредактировал _Desh_ - Jun 6 2012, 16:27
|
|
|
|
|
Jun 8 2012, 05:41
|
Участник

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

|
Eclipse неправильно считывает параметры зашитого в ПЛИС проекта. Для данной платы есть готовый, абсолютно точно рабочий проект. Я точно знаю, что в этом проекте есть процессор Nios, JTAG UART, system ID. Во-первых, не считывается название процессора. Во-вторых, неверно определяется тип ядра (должно быть, как я понял, 1, 2 или 3, а показывает -1). В-третьих, не находит JTAG UART. Последнее - всегда, вне зависимости от проекта, зашитого в плату, пишет, что реальный system ID - 0xffffffff, хотя базовый адрес компонента System ID Peripheral, базовый адрес памяти определяет верно. Если бы такое наблюдалось только с моим проектом, я бы согласился, что дело или в аппаратной части, или в моих кривых руках. Но с чужим проектом все проще - включается питание, проект загружается из EPCS и плата работает. Моего вмешательства в данном случае - один щелчок тумблером и запуск Eclipse. Вывод - проблема именно в Eclipse, возможно в драйвере USB Blaster. Как считаете, поможет ли переустановка или переход на более новую версию?
Сообщение отредактировал _Desh_ - Jun 8 2012, 05:45
|
|
|
|
|
Jun 8 2012, 07:10
|

Частый гость
 
Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954

|
Цитата(_Desh_ @ Jun 8 2012, 12:41)  Eclipse неправильно считывает параметры зашитого в ПЛИС проекта. Для данной платы есть готовый, абсолютно точно рабочий проект. Я точно знаю, что в этом проекте есть процессор Nios, JTAG UART, system ID. Во-первых, не считывается название процессора. Во-вторых, неверно определяется тип ядра (должно быть, как я понял, 1, 2 или 3, а показывает -1). В-третьих, не находит JTAG UART. Последнее - всегда, вне зависимости от проекта, зашитого в плату, пишет, что реальный system ID - 0xffffffff, хотя базовый адрес компонента System ID Peripheral, базовый адрес памяти определяет верно. Если бы такое наблюдалось только с моим проектом, я бы согласился, что дело или в аппаратной части, или в моих кривых руках. Но с чужим проектом все проще - включается питание, проект загружается из EPCS и плата работает. Моего вмешательства в данном случае - один щелчок тумблером и запуск Eclipse. Вывод - проблема именно в Eclipse, возможно в драйвере USB Blaster. Как считаете, поможет ли переустановка или переход на более новую версию? Поставьте последний квартус + еклипс, если не поможет то скорей всего, дело в чьих то руках
|
|
|
|
|
Jun 8 2012, 07:44
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Такие фокусы, как невозможность прочесть system ID и timestamp, очень часто случается, когда не работает или не соответствует ожидаемым параметрам тактовый генератор. Я, запаяв не рабочий генератор, тоже как-то долго пытался дебажить проект, и тоже не верифицировалась залитая программа, не совпадал сисид и время создания... 1) Проверьте, на те ли выводы подаётся тактовая частота и работает ли генератор? 2) Проверьте назначение пина для тактовой частоты в проекте. 3) Есть возможность проверить другую плату/рабочий проект?
PS А версия ква 9.1 довольно таки безглючная... Мне сюрпризов почти не преподносила.
Сообщение отредактировал Копейкин - Jun 8 2012, 07:46
|
|
|
|
|
Jun 9 2012, 04:42
|
Участник

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

|
Цитата(Копейкин @ Jun 8 2012, 11:44)  1) Проверьте, на те ли выводы подаётся тактовая частота и работает ли генератор? 2) Проверьте назначение пина для тактовой частоты в проекте. 3) Есть возможность проверить другую плату/рабочий проект? 1) и 2) - генератор рабочий (если верить осциллографу), тактовый вход задан правильно (потому что проект все-таки работает, если загружать его из EPCS или Quartus Programmer'ом). Другой платы нет, а вот другой проект вчера проверял разработчик платы (я ее использую только как отладочную) - все нормально, в смысле если опять же грузить через EPCS, в Eclipse проверить не получится - проект сделан в Nios II IDE 9.0. Если будет время, попробую накатить сервис пак - вдруг поможет...
|
|
|
|
|
Jun 23 2012, 08:03
|
Участник

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

|
В общем, отписываюсь по поводу своей проблемы - дело оказалось в программаторе USB Blaster. Взял (самодельный!) ByteBlaster II (который через LPT) и все заработало, как и должно. Вот такая вот загогулина.
|
|
|
|
|
  |
7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0
|
|
|