Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Warning в Qsys
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
LAS9891
Имеется плата Terasic DE2-115. Пробую выполнить пример из tutorial "Using the SDRAM Memory on Altera’s DE2-115
Board with Verilog Design". Этот tutorial нашел на диске, который был в комплекте с платой. Собираю проект в Qsys согласно tutorial. Когда все уже вроде настроил - вылезает Warning:

Warning: System.nios2_qsys_0: The address range of the slaves connected to the Nios II instruction masters exceeds 28 bits. Attempts to call functions across 28-bit boundaries is not supported by GCC and will result in linker errors.

Сам проект выглядит так:


В чем ошибка? Как исправить?

Сам tutorial тут:
Нажмите для просмотра прикрепленного файла

Raven
Так он же вам все написал:
Цитата(LAS9891 @ Feb 15 2017, 12:58) *
Warning: System.nios2_qsys_0: The address range of the slaves connected to the Nios II instruction masters exceeds 28 bits. Attempts to call functions across 28-bit boundaries is not supported by GCC and will result in linker errors.

Т.е., поддержка NIOS2 процессора в GCC имеет ограничение - код не должен пересекать границу в 28 бит адреса.

Вам нужно переопределить карту памяти системы таким образом, чтобы такого пересечения не было. Можно сделать это вручную как вам хочется, изменяя базовые адреса модулей на шине, а можно попросить QSys сделать это автоматом (кажется, на вкладке Address Map должна быть кнопка или что-то вроде того).
LAS9891
Цитата(Raven @ Feb 15 2017, 14:54) *
Вам нужно переопределить карту памяти системы таким образом, чтобы такого пересечения не было. Можно сделать это вручную как вам хочется, изменяя базовые адреса модулей на шине, а можно попросить QSys сделать это автоматом (кажется, на вкладке Address Map должна быть кнопка или что-то вроде того).


Попробовал переписать адреса вручную как в примере - не помогло. Получилось вот так:

и вот так:


Перечитал пример заново, в общем получилось как в примере, хотя до конца и не разобрался. Где бы теперь найти пример использования SDRAM... help.gif
_Anatoliy
Цитата(LAS9891 @ Feb 16 2017, 08:10) *

У вас для onchip-memory не назначены адреса, посмотрите View/address map. Попробуйте назначить адреса автоматом System/Assign Base Addresses.
LAS9891
Цитата(_Anatoliy @ Feb 16 2017, 09:10) *
У вас для onchip-memory не назначены адреса, посмотрите View/address map. Попробуйте назначить адреса автоматом System/Assign Base Addresses.

После этого ситуация станет как на первой картинке. Варнингов удалось избежать когда выполнил следующую последовательность действий:
- удалил из проекта SDRAM;
- поменял вектора в NIOS на on_chip_memory;
- сделал System/Assign Base Addresses;
- добавил в проект SDRAM и подключил ее;
- поменял вектора в NIOS на SDRAM;

После этого - варнингов не оказалось.
LAS9891
Новый вопрос. В Qsys вывел reset наружу:

В Quartus-е подключил этот reset к кнопке. В Eclipce пишу программу - мигалку, загружаю в Nios. Программа работает - мигает . Жму кнопку с reset-ом, мигалка гаснет и больше не загорается. Почему программа заново не стартует?

Stewart Little
Цитата(LAS9891 @ Feb 17 2017, 11:47) *
Почему программа заново не стартует?

Проверяйте настройки вектора сброса (и исключения) в Qsys и соответствие им настроек BSP.
Raven
Цитата(LAS9891 @ Feb 17 2017, 11:47) *
В Quartus-е подключил этот reset к кнопке. В Eclipce пишу программу - мигалку, загружаю в Nios. Программа работает - мигает . Жму кнопку с reset-ом, мигалка гаснет и больше не загорается. Почему программа заново не стартует?

Возможно, эта кнопка еще и сбрасывает конфигурацию FPGA. Содержимое FPGA остается живым? Для тестовых проектов обычно делают еще и вывод свободно бегущего счетчика на светодиод (аппаратного, не зависящего от софта), чтобы всегда видеть - живо ли содержимое ПЛИС, или нет. Ну, или еще что-то в этом духе (вывод на HEX-индикатор, мигание точки, и т.п.).

А если запущено под Eclipse-debugger'ом, так это он, возможно, перехватывает управление при Reset'е, останавливает NIOS и не дает ему бегать.
LAS9891
Цитата(Stewart Little @ Feb 17 2017, 14:45) *
Проверяйте настройки вектора сброса (и исключения) в Qsys и соответствие им настроек BSP.

А где глянуть эти настройки BSP?
Stewart Little
Цитата(LAS9891 @ Feb 17 2017, 15:09) *
А где глянуть эти настройки BSP?

В BSP Editor'е. Это в NiosII EDS.
Вот как Вы cмогли написать программу для NiosII, и не узнать при этом, где создается BSP??? wacko.gif
LAS9891
Цитата(Stewart Little @ Feb 17 2017, 16:26) *
В BSP Editor'е. Это в NiosII EDS.
Вот как Вы cмогли написать программу для NiosII, и не узнать при этом, где создается BSP??? wacko.gif

Где в BSP Editor настройки векторов сброса?
Stewart Little
Цитата(LAS9891 @ Feb 19 2017, 12:30) *
Где в BSP Editor настройки векторов сброса?

Вектор сброса указывается в Qsys, при настройке модуля NiosII.
В BSP Editor этот вектор импортируется из sopc-файла. Но в BSP есть еще настройка "Allow code at reset". Она должна соответствовать вектору сброса.
Если он указывает, например, на On-Chip RAM (где сразу после конфигурации живет исполняемый код), то разрешаем исполнение кода приложения по сбросу.
А если, например, на EPCS_FLASH_CONTROLLER - то запрещаем, т.е. по сбросу должен запускаться копировщик, живущий в EPCS_FLASH_CONTROLLER'е.
И т.д. и т.п.
LAS9891
Цитата(Stewart Little @ Feb 20 2017, 01:37) *
Вектор сброса указывается в Qsys, при настройке модуля NiosII.
В BSP Editor этот вектор импортируется из sopc-файла. Но в BSP есть еще настройка "Allow code at reset".


Вот что есть с похожим названием.


Stewart Little
Цитата(LAS9891 @ Feb 20 2017, 08:11) *
Вот что есть с похожим названием.

Вы не названия похожие ищите, а документацию изучайте тщательнеЕ!!! twak.gif

Вы писали, что у Вас вектор сброса указывает на SDRAM.
В BSP у Вас установлена галка, говорящая о том, что по вектору сброса находится рабочий код приложения, который сразу по сбросу должен начать исполнятся.
Соответственно, если после сброса в SDRAM нет кода приложения, то ничего и не стартует.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.