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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
Волощенко
сообщение Dec 3 2008, 10:51
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Всем привет!
Завершив отладку на DK-NIOS-2S60N в режиме Debug, сделал Release и записал в EPCS64 конфигурацию для FPGA и программу для NiosII. Программирование прошло успешно. Далее устройство работает уже автономно, т.е. без Nios II 7.2 IDE.
Заметил отличия в работе, если в режиме Debug передача по Ethernet-100 была нормальной, то после старта и загрузки из EPCS, в обменах по Ethernet-100 начали появляться сбои. После возврата опять в режим Debug под загрузку прямо из IDE, все восстанавливается. Очевидно, что просто поменялся путь загрузки в FPGA и NiosII, а все настройки прежние.
В чем возможна причина?

В приложении лог консоли при программировании EPCS64 (то есть NiosII IDE ->Tools->Flash programer)
Прикрепленные файлы
Прикрепленный файл  Programming_StratixII_2.zip ( 4.38 килобайт ) Кол-во скачиваний: 158
 
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 3 2008, 12:54
Сообщение #2


Гуру
******

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



а грузится точно с EPCS? там в скрипте еще CFI шьется, точнее _не_ шьется. sof вроде нормально зашился.
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Dec 3 2008, 13:33
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Да, грузится в EPCS, как задано в настройках (см. второй лист в приложении, это для NiosII IDE ->Tools->Flash programer)
На первом листе SOPC, там контроллер EPCS, как и надо. А флашь CFI пока сама по себе, туда пока ничего не грузим.

Сообщение отредактировал Omen_13 - Dec 13 2008, 08:30
Прикрепленные файлы
Прикрепленный файл  settings.zip ( 167.73 килобайт ) Кол-во скачиваний: 52
 
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 3 2008, 13:51
Сообщение #4


Гуру
******

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



а какого рода сбои? сама программа стартует? в принципе, времянки могли поплыть. в отладчике скорость заметно ниже.
можно еще отладчик запустить с программой, что в epcs зашита (не заливать в он-чип), посмотрите в опциях дебаггера
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Dec 3 2008, 14:17
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Программа стартует сразу после подачи питания, как и ожидается.
Времянки определяются Квартусом при компиляции и размещении. Режим Дебаг и Релиз используют один и тот же результат размещения, поэтому времянки не должны плыть.
Внешне все работает как надо, но появляются временные сбои, которые искажают мат.обработку от внутреннего имитатора.
Процессор работает с внешней периферией, ее много. Nios работает на 100МГц (fast) и похоже не сбоит.
Отладчик у меня не используется в режиме пошаговом или иначе, а только как UART-JTAG на консоль, да и то не всегда, а только в начале. Он на задержу не влияет.

Сообщение отредактировал Omen_13 - Dec 13 2008, 08:34
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 3 2008, 14:25
Сообщение #6


Гуру
******

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



я неправильно понял, я думал в (пошаговом) отладчике все работало(под времянками я имел в виду задержки, реализованные программно).
а если так:
1 - сделать Run/Release в ниос-иде, то работает?
или
2 - зашить debug-версию проекта в epcs - работает?
я, кстати, не делаю Release для проекта, только Debug(можно отладчик запустить), а вот system library-тот Release, для экономии

Сообщение отредактировал Omen_13 - Dec 13 2008, 08:35
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Dec 4 2008, 12:56
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Предложенный Вами вариант 2 (зашить debug-версию проекта в epcs) прошел... Уже вроде как легче. Спасибо!!! smile.gif
Но непонятно стало, т.к. меня все предыдущие компиляторы учили, что зашивать то надо Release.
В первом варианте не нашел самого Run/Release в ниос-иде, по этому не проверял..

Попытался порыться в доках-истоках о Release/Debug в части Active Build Configuration, но нашел мало, только это:
1. (Это из хелпа) The Active Build Configuration submenu allows you to specify which build configuration to use when building your project.

2. (Из Nios II Development Kit Version 1.1 Errata - Software что на http://www.altera.com/support/ip/processor...0Configuration)
C/C++ Build property settings don't update correctly
On the C/C++ Build property page for a project, the Configuration dropdown list is used to select the active build configuration (e.g., release or debug). When the active configuration is changed, the rest of the window does not automatically update with the appropriate settings for Compiler Flags, Optimization Level, etc.
Workaround: To see the settings for a new configuration, manually deselect then reselect a Configuration setting. e.g., click on Preprocessor then General.

Сообщение отредактировал Omen_13 - Dec 13 2008, 08:36
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 4 2008, 13:53
Сообщение #8


Гуру
******

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



по идее, Release от Debug, отличаются наличием в последнем Debug-символов для отладки и флагами оптимизации. я заметил, что если в ниос-иде выбран вариант Release, то опция gcc -Os не влияет на размер выходного файла (эта опция выставляется неявно?). возможно, это как раз тот баг, что вы описали. под Run/Release я имел в виду выбрать конфигурацию Release, собрать проект и запустить его. программа заливается в он-чип или какая у вас память и ей передается управление. да, настройки билдера Debug/Release задаются для проекта и его System Library по отдельности, может тут проблема. имеет смысл в Preferences/(Build, кажется) выставить флажок "генерить objdump" - в папке Release(Debug) появится файл с *.objdump, в нем масса полезной инфы. еще стоит посмотреть в коде используемых драйверов наличие директив препроцессора типа "#ifdef DEBUG"
Go to the top of the page
 
+Quote Post
yura-w
сообщение Dec 6 2008, 15:22
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(Волощенко @ Dec 3 2008, 13:51) *
Заметил отличия в работе, если в режиме Debug передача по Ethernet-100 была нормальной, то после старта и загрузки из EPCS

попробуйте зашить в EPCS сборку Debug.
я думаю что дело в сборке а не способе загрузки.

использую для в cycloneIII и epcs16 только Debug версию,
на Release работа с самодельными модулями прекращается,
но пока склоняюсь к кривизне своих модулей.
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Dec 6 2008, 20:05
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Цитата(yura-w @ Dec 6 2008, 19:22) *
Я так и сделал по совету от vadimuzzz
Перед этим потратил время на ненужный поиск ошибок в своем проекте. Возникает вопрос, а зачем тогда нужен Release, если и без него все работает?
Кстати, какой конкретно cycloneIII. Собираюсь в следующей разработке применять связку из трех cycloneIII с загрузкой от одного EPCS. При этом в двух FPGA планирую по одному NiosII. Как в таком случае все это будет загружаться, есть прецедент? До этого у меня была была связка из двух FPGA FLEX10K и одной EPCS, и работало в MaxII+plus.

Сообщение отредактировал Omen_13 - Dec 13 2008, 08:28
Go to the top of the page
 
+Quote Post
yura-w
сообщение Dec 7 2008, 11:39
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(Волощенко @ Dec 6 2008, 23:05) *
Я так и сделал по совету от vadimuzzz
извиняюсь, был невнимателен

Цитата
Возникает вопрос, а зачем тогда нужен Release, если и без него все работает?
даже в пределах разных настроек в Debug повышается быстродействие, а в Release видимо и подавно
(цифры не готов привести, при разных настройках в Debug, при работе со своей переферией, видел существенное изменение скорости обращения к ней)

Цитата
Кстати, какой конкретно cycloneIII
EP3C10E144C7N

Цитата
Собираюсь в следующей разработке применять связку из трех cycloneIII с загрузкой от одного EPCS. При этом в двух FPGA планирую по одному NiosII. Как в таком случае все это будет загружаться, есть прецедент?
с загрузкой 2 ниос в разные чипы из одного EPCS не сталкивался, описание такого способа в документации не помню, возможно ли это?
(хотите грузиться из одного EPCS для экономии средств? для EPCS доступны небольшие корпуса 8 pin SOIC)
Go to the top of the page
 
+Quote Post
id_gene
сообщение Dec 8 2008, 06:33
Сообщение #12


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Цитата(Волощенко @ Dec 6 2008, 23:05) *
зачем тогда нужен Release, если и без него все работает?
Посмотрите ключи компилятора, ассемблер на выходе, размер кода. Release выдает оптимизированный код, работающий быстрее и, часто, меньший по объему.
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Dec 8 2008, 08:14
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Цитата(id_gene @ Dec 8 2008, 10:33) *
Посмотрите ключи компилятора, ассемблер на выходе, размер кода. Release выдает оптимизированный код, работающий быстрее и, часто, меньший по объему.

Вопрос поднят потому, что загрузив в EPCS программы для FPGA и NiosII, я столкнулся со сбоями. Они возникали для Release, а для Debug сбоев не было.
В частности, сбои связаны со смещениями байт в блоке данных udp-пакетов для Ethernet-100. Этим в моем проекте управляет NiosII (fast 100МГц), а контрольная сумма, в частности, вычисляется аппаратно. Кроме этого, проект имеет несколько FSM с частотой 100МГц, а также несколько Ram-банков внутри и вне FPGA. Я искал ошибки, в основном на предмет гонок, но ничего не нашел.
Мне многое не ясно в тонкостях Release<-> Debug, нужно еще разбираться, но важен результат, и с Debug в EPCS он достигнут. А вариант Release приводит к сбоям, кроме этого yura-w и vadimuzzz сообщают, что, видимо, по тем же причинам используют только Debug.
Да, и еще, все отладочные действия исключены из конечной EPCS-версии.
Go to the top of the page
 
+Quote Post
id_gene
сообщение Dec 8 2008, 12:27
Сообщение #14


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Цитата(Волощенко @ Dec 8 2008, 11:14) *
В частности, сбои связаны со смещениями байт в блоке данных udp-пакетов для Ethernet-100.
...
важен результат, и с Debug в EPCS он достигнут. А вариант Release приводит к сбоям
По первому замечанию, если у вас так локализована ошибка, то ковыряйте в этом месте.

По второму - если у вас код, который исполняется быстрее, приводит к сбоям, то скорее всего, код написан неаккуратно, вы что-то упустили. Пока вы не найдете ошибку, вы не сможете гарантировать ее отсутствие даже в Debug варианте. Возможно, она будет возникать гораздо реже, или отсутствовать сейчас, но в будущем вы повысите частоту ядра или понизите скорость периферии (до ethernet-10 или где-то еще), и у вас опять пойдут гонки времен исполнения аппаратных и программых частей.
Есть еще малая вероятность ошибки компилятора.
Go to the top of the page
 
+Quote Post
yura-w
сообщение Dec 8 2008, 20:25
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(id_gene @ Dec 8 2008, 15:27) *
гонки времен исполнения аппаратных и программых частей.
согласен, видимо это та причина, по которой я использую Debug,
надеюсь разобравшись с AN 351: Simulating Nios II Embedded Processor решение будет найдено(не хочется терять производительность)
Go to the top of the page
 
+Quote Post

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

 


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


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