Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка при сборке проекта с sgdma и vic в последнем эклипсе
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
vadimuzzz
начитавшись хороших слов о Qsys, решил портировать один старый проект. в принципе, почти все понравилось, кроме одного:
ниосовский софт отказался собираться. симптомы выглядят так, как показано на скриншоте внизу.
я сделал при портировании глупую вещь - внес сразу несколько изменений, в числе прочего заменил контроллер прерываний на vic. как видно выше, минимум одна ошибка связана с вызовом alt_irq_register. хотя, исходя из наличия в системе vic, должен использоваться вызов alt_ic_isr_register. т.е. ALT_ENHANCED_INTERRUPT_API_PRESENT не определен, и мне непонятно почему. я так понимаю, он должен автоматически добавляться при добавлении в систему внешнего контроллера прерываний.
список изменений, которые я сделал при портировании:
  • переход от legacy nios-ide на SBT
  • сменил контроллер прерываний
  • переделал систему из SOPC в Qsys

м.б. кто-то видел нечто подобное? или это "фича" последнего квартуса?
Stewart Little
Мануал смотрели: AN632: SOPC Builder to Qsys Migration Guidelines (PDF)
Я, правда, еще не пробовал портировать систему с сопка на кусис...
vadimuzzz
Цитата(Stewart Little @ Jun 1 2011, 15:25) *

да, там про железную часть. в принципе, сложностей никаких, иерархические дизайны сильно порадовали. выбросил VIC пока, вроде собирается, буду тестить.
vadimuzzz
Чем дальше, тем чудесатее. Добавил я к линкеру ключик -DALT_ENHANCED_INTERRUPT_API, он мне выдал следующее:
Цитата
../sdr400_bsp//libhal_bsp.a(alt_sys_init.o): In function `alt_sys_init':
/home/vadik/Qdesigns/sdr400cpu-ng/software/sdr400_bsp/alt_sys_init.c:98: warning: Error: Interrupt not connected for eth_0_eth_rx_sgdma. The Altera Avalon Scatter-Gather DMA driver requires that an interrupt is connected. Please select an IRQ for this device in SOPC builder.
../sdr400_bsp//libhal_bsp.a(alt_sys_init.o): In function `alt_sys_init':
alt_sys_init.c:(.text+0x8): undefined reference to `__alt_invalid'
alt_sys_init.c:(.text+0x14): undefined reference to `__alt_invalid'

я, конечно, удивился, т.к. прерывания подключены (см. скрин). заглядываю в system.h - и точно, вместо номеров прерываний у компонентов стоят -1, т.е. не подключены. такие дела, копаем дальше
vadimuzzz
http://www.alteraforum.com/forum/showpost....amp;postcount=2

а вот и рекомендации от альтеры:
Цитата
1) Use SOPC Builder until this issue is resolved
2) Manually key in the interrupt values into the system.h file
3) Switch to using the internal interrupt controller
gosu-art
Цитата(vadimuzzz @ Jun 3 2011, 05:45) *


Вы не в курсе, исправили этот баг или нет?
vadimuzzz
Цитата(gosu-art @ Aug 22 2011, 15:23) *
Вы не в курсе, исправили этот баг или нет?

есть костыль: http://www.altera.com/support/kdb/solution...152011_982.html

по сути - не сильно отличается от назначения номеров прерываний руками, после перегенерации системы нужно каждый раз править .sopcinfo
gosu-art
Цитата(vadimuzzz @ Aug 22 2011, 12:45) *
есть костыль: http://www.altera.com/support/kdb/solution...152011_982.html

по сути - не сильно отличается от назначения номеров прерываний руками, после перегенерации системы нужно каждый раз править .sopcinfo


Да ну его biggrin.gif я лучше на SOPC посижу пока)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.