|
загрузка NIOS (DEVBOARD Циклон 3), не грузится в on_chip memory |
|
|
|
Aug 13 2010, 10:29
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
работаю с платой Циклон 3. Собрал простейшую систему: Ниос + Jtag-UART+ON_CHIP Memory+PIO (выход на светодиоды), получилось 2 входа (ресет и clk ) и 8 выходов. загрузка системы в плисину проходит удачно, что могу наблюдать по состоянию светодиодов, которые инициализирую кодом 0xAA (из SOPC), однако при загрузки софта из эклипса (обычный хеллоуворд) получаю следующее сообщение -
Using cable "USB-Blaster [USB-0]", device 1, instance 0x01 Pausing target processor: not responding. Resetting and trying again: FAILED Leaving target processor paused
если залить в плиску прошивку в альтеровкого диска, то загрузка софта проходит успешно. Собственно вопрос, гда я накосячил ?
Использую квартус 9.1 (недолеченный, создает только .sof)
И еще, что нужно поменять в лицензии, что иметь полноценный НИОС без time-limitedю Спасибо.
|
|
|
|
|
Aug 13 2010, 19:03
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
собрал проект заново (ядро и софт), ничего нового не добавлял, ничего не убирал, и, о чудо, раза с пятого все запустилось. Я даже не обрадовался, так как так и не разобрался в чем дело было.
На чем только не программировал , ничего более глюкавого, чем Эклипс не встречал, это у всех так или я самый везучий ?
|
|
|
|
|
Aug 16 2010, 08:42
|

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

|
Цитата(карамболь @ Aug 13 2010, 23:03)  На чем только не программировал , ничего более глюкавого, чем Эклипс не встречал, это у всех так или я самый везучий ? Версия какая? Ганимед из v9.1sp2 имхо довольно стабильная платформа. А вот Галилео из v10.0 - того, глюкавая (как, впрочем, и вся десятая версия) - так что ждем сервис паков.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Aug 16 2010, 09:19
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
Цитата(Stewart Little @ Aug 16 2010, 12:42)  Версия какая? Ганимед из v9.1sp2 имхо довольно стабильная платформа. А вот Галилео из v10.0 - того, глюкавая (как, впрочем, и вся десятая версия) - так что ждем сервис паков. У меня 9.1 сп2, почитав форум, решил воздержаться пока от перехода на 10, пока своих граблей хватает -)
|
|
|
|
|
Sep 24 2010, 12:40
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 29-01-09
Пользователь №: 44 114

|
Цитата(карамболь @ Aug 13 2010, 14:29)  если залить в плиску прошивку с альтеровкого диска, то загрузка софта проходит успешно здравствуйте, а не подскажите где можно качнуть содержимое этого самого альтеровского диска, а то не могу найти на их сайте этот самый простейший пример, хоть убей.
Сообщение отредактировал nkie - Sep 24 2010, 12:42
|
|
|
|
|
Oct 1 2010, 07:38
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-04-10
Пользователь №: 56 476

|
Здравствуйте, может все же припомните что вы делали? проблема абсолютно аналогичная, проект такой же, плата та же и софт один в один. Да вот беда: Verifying 00100020 ( 0%) Verify failed between address 0x100020 and 0x10D517 Leaving target processor paused
Downloading Elf Process failed
|
|
|
|
|
Oct 1 2010, 08:28
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(titova @ Oct 1 2010, 14:38)  Downloading Elf Process failed на форуме острая нехватка телепатов, поэтому сопровождайте подобные вопросы следующей информацией: 1. железо, рабочие частоты 2. точные версии ПО 3. какой у вас проект для квартуса (из примеров, самописный) 4. то же относительно программы ниоса 5. информация из SOPC-билдера (можно скриншот) 6. настройки линкера 7. отчет о компиляции в квартусе (он большой, но хорошо сжимается любы архиватором) 8. если есть сомнения по поводу кода, выбросить все секретное и выложить на вскидку: программатор не может залить программу в ОЗУ, такое м.б., например, из-за неправильной работы/подключения внешней памяти. модераторам: просьба повесить шапку, по типу приведенного выше списка, с рекомендацией создавать темы по образу и подобию.
|
|
|
|
|
Oct 1 2010, 11:45
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-04-10
Пользователь №: 56 476

|
1) Девборд циклон3, 50Mhz 2) ПО Q2 9.1 sp2, Nios2 eds 9.1 sp2 3) Ниос + ножки. Настройки отсюда http://www.nioswiki.com/Cyclone_III_-_Nios...-_Starter_board , но проект не на veriloge, как в примере, а собран в bdf 4) Для ниоса программа шаблонная Hello World Small 5) Ниос + Jtag-UART+ON_CHIP Memory+PIO_led + PIO_Buttons+ SSRAM+ MM Tristate bridge. Отличия от примера: ончип мэмори больше- 16кб, и оба вектора резет и эксепшн назначены на ончип мэмори. 6) настройки см. п.3)
|
|
|
|
|
Oct 1 2010, 12:05
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-04-10
Пользователь №: 56 476

|
Вторая. А линкер это, простите, что? И какие именно настройки интересуют?
|
|
|
|
|
Oct 1 2010, 12:45
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-04-10
Пользователь №: 56 476

|
На сколько понимаю интересует файл linker.h
#ifndef __LINKER_H_ #define __LINKER_H_
/* * BSP controls alt_load() behavior in crt0. * */
#define ALT_LOAD_EXPLICITLY_CONTROLLED
/* * Base address and span (size in bytes) of each linker region * */
#define ONCHIP_MEMORY2_REGION_BASE 0x408020 #define ONCHIP_MEMORY2_REGION_SPAN 30688 #define RESET_REGION_BASE 0x408000 #define RESET_REGION_SPAN 32 #define SSRAM_REGION_BASE 0x200000 #define SSRAM_REGION_SPAN 1048576
/* * Devices associated with code sections * */
#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY2 #define ALT_RESET_DEVICE ONCHIP_MEMORY2 #define ALT_RODATA_DEVICE SSRAM #define ALT_RWDATA_DEVICE SSRAM #define ALT_TEXT_DEVICE SSRAM
/* * Initialization code at the reset address is allowed (e.g. no external bootloader). * */
#define ALT_ALLOW_CODE_AT_RESET
/* * The alt_load() facility is called from crt0 to copy sections into RAM. * */
#define ALT_LOAD_COPY_EXCEPTIONS
#endif /* __LINKER_H_ */
ну и теперь он ругается на другой адрес
Verifying 00200000 ( 0%) Verify failed between address 0x200000 and 0x200233 Leaving target processor paused
и как я понимаю предположение о том что он линкуется во внешнюю память верно. Что можно с этим сделать?
|
|
|
|
|
Oct 1 2010, 13:44
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-04-10
Пользователь №: 56 476

|
В этом то и дело, есть желание научиться читать и пасать из/в SSRAM желаемую информацию. Возможно был выбран неправильный подход к изучению. Не посоветуете где можно почитать? Или готовые проекты где-нибудь может есть, на которых можно понять принцип работы?
|
|
|
|
|
Oct 1 2010, 17:09
|

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

|
Цитата(titova @ Oct 1 2010, 17:44)  В этом то и дело, есть желание научиться читать и пасать из/в SSRAM желаемую информацию. Возможно был выбран неправильный подход к изучению. Не посоветуете где можно почитать? Или готовые проекты где-нибудь может есть, на которых можно понять принцип работы? ЕМНИП, на вашей плате внешние SSRAM и Flash висят на одной шине. Поэтому нужно задавать бОльшую нагрузочную способность для сигналов управления (по крайней мере) на этой шине (adcs, be, ce, clk, oe, we). Ну и, как уже рекомендовали, надо проверить правильность подключения сигналов на выводы микросхемы. Прилагаю свой проект с внешней SSRAM, который делался когда-то для такой же платы, как и у Вас. Cразу извиняюсь за монстоидальный размер архива - просто некогда его оптимизировать Проект делался в версии 8.1, и если мне склероз не изменяет, работал как Папа Карло  Модуль SSRAM делался в Component Editor'e из заготовки (Template).
Прикрепленные файлы
Lab1.zip ( 2.81 мегабайт )
Кол-во скачиваний: 27
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Oct 21 2010, 11:24
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-04-10
Пользователь №: 56 476

|
Всем большое спасибо за помощь! Проблема разрешилась! Не был подключен клок на память. В этой же системе пытаюсь узнать быстродействие процессора. запускаю следующий текст программы. int main() { while (1) { IOWR_ALTERA_AVALON_PIO_DATA(LED1_BASE, 1); IOWR_ALTERA_AVALON_PIO_DATA(LED1_BASE, 0); } } На диоде осциллографом вижу частоту около 333кГц. Неужели так медленно?
|
|
|
|
|
Oct 22 2010, 06:30
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-04-10
Пользователь №: 56 476

|
И экономичный и фаст. без разницы, одно и то же.
|
|
|
|
|
Oct 22 2010, 07:31
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-04-10
Пользователь №: 56 476

|
таймера нет. тактовая 50 Мгц. Как вообще узнать реальную скорость выполнения команд? Можно ли залезть в машинный код?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|