реклама на сайте
подробности

 
 
> Warning в Qsys, Using the SDRAM Memory on Altera’s DE2-115
LAS9891
сообщение Feb 15 2017, 09:58
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



Имеется плата 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 тут:
Прикрепленный файл  tut_sdram_verilog.pdf ( 687.73 килобайт ) Кол-во скачиваний: 346




Сообщение отредактировал LAS9891 - Feb 15 2017, 10:00
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 13)
Raven
сообщение Feb 15 2017, 11:54
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Так он же вам все написал:
Цитата(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 должна быть кнопка или что-то вроде того).
Go to the top of the page
 
+Quote Post
LAS9891
сообщение Feb 16 2017, 05:10
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



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


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

и вот так:


Перечитал пример заново, в общем получилось как в примере, хотя до конца и не разобрался. Где бы теперь найти пример использования SDRAM... help.gif

Сообщение отредактировал LAS9891 - Feb 16 2017, 06:03
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Feb 16 2017, 06:10
Сообщение #4


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(LAS9891 @ Feb 16 2017, 08:10) *

У вас для onchip-memory не назначены адреса, посмотрите View/address map. Попробуйте назначить адреса автоматом System/Assign Base Addresses.
Go to the top of the page
 
+Quote Post
LAS9891
сообщение Feb 16 2017, 06:32
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



Цитата(_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;

После этого - варнингов не оказалось.
Go to the top of the page
 
+Quote Post
LAS9891
сообщение Feb 17 2017, 08:47
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



Новый вопрос. В Qsys вывел reset наружу:

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

Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 17 2017, 11:45
Сообщение #7


Лентяй
******

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



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

Проверяйте настройки вектора сброса (и исключения) в Qsys и соответствие им настроек BSP.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
Raven
сообщение Feb 17 2017, 12:04
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



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

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

А если запущено под Eclipse-debugger'ом, так это он, возможно, перехватывает управление при Reset'е, останавливает NIOS и не дает ему бегать.
Go to the top of the page
 
+Quote Post
LAS9891
сообщение Feb 17 2017, 12:09
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



Цитата(Stewart Little @ Feb 17 2017, 14:45) *
Проверяйте настройки вектора сброса (и исключения) в Qsys и соответствие им настроек BSP.

А где глянуть эти настройки BSP?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 17 2017, 13:26
Сообщение #10


Лентяй
******

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



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

В BSP Editor'е. Это в NiosII EDS.
Вот как Вы cмогли написать программу для NiosII, и не узнать при этом, где создается BSP??? wacko.gif


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
LAS9891
сообщение Feb 19 2017, 09:30
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



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

Где в BSP Editor настройки векторов сброса?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 19 2017, 22:37
Сообщение #12


Лентяй
******

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



Цитата(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'е.
И т.д. и т.п.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
LAS9891
сообщение Feb 20 2017, 05:11
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



Цитата(Stewart Little @ Feb 20 2017, 01:37) *
Вектор сброса указывается в Qsys, при настройке модуля NiosII.
В BSP Editor этот вектор импортируется из sopc-файла. Но в BSP есть еще настройка "Allow code at reset".


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


Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 20 2017, 12:16
Сообщение #14


Лентяй
******

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



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

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

Вы писали, что у Вас вектор сброса указывает на SDRAM.
В BSP у Вас установлена галка, говорящая о том, что по вектору сброса находится рабочий код приложения, который сразу по сбросу должен начать исполнятся.
Соответственно, если после сброса в SDRAM нет кода приложения, то ничего и не стартует.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01469 секунд с 7
ELECTRONIX ©2004-2016