|
Nios II 7.2 IDE (SP3), Загрузка в EPCS конфигурации FPGA и программы NiosII |
|
|
|
Dec 3 2008, 10:51
|
Местный
  
Группа: Свой
Сообщений: 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)
|
|
|
|
|
Dec 3 2008, 13:33
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Да, грузится в EPCS, как задано в настройках (см. второй лист в приложении, это для NiosII IDE ->Tools->Flash programer) На первом листе SOPC, там контроллер EPCS, как и надо. А флашь CFI пока сама по себе, туда пока ничего не грузим.
Сообщение отредактировал Omen_13 - Dec 13 2008, 08:30
|
|
|
|
|
Dec 3 2008, 14:17
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

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

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
Dec 4 2008, 12:56
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Предложенный Вами вариант 2 (зашить debug-версию проекта в epcs) прошел... Уже вроде как легче. Спасибо!!! Но непонятно стало, т.к. меня все предыдущие компиляторы учили, что зашивать то надо 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
|
|
|
|
|
Dec 4 2008, 13:53
|

Гуру
     
Группа: Свой
Сообщений: 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"
|
|
|
|
|
Dec 6 2008, 15:22
|
Местный
  
Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617

|
Цитата(Волощенко @ Dec 3 2008, 13:51)  Заметил отличия в работе, если в режиме Debug передача по Ethernet-100 была нормальной, то после старта и загрузки из EPCS попробуйте зашить в EPCS сборку Debug. я думаю что дело в сборке а не способе загрузки. использую для в cycloneIII и epcs16 только Debug версию, на Release работа с самодельными модулями прекращается, но пока склоняюсь к кривизне своих модулей.
|
|
|
|
|
Dec 6 2008, 20:05
|
Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Dec 7 2008, 11:39
|
Местный
  
Группа: Свой
Сообщений: 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)
|
|
|
|
|
Dec 8 2008, 06:33
|
carpe manana
  
Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659

|
Цитата(Волощенко @ Dec 6 2008, 23:05)  зачем тогда нужен Release, если и без него все работает? Посмотрите ключи компилятора, ассемблер на выходе, размер кода. Release выдает оптимизированный код, работающий быстрее и, часто, меньший по объему.
|
|
|
|
|
Dec 8 2008, 08:14
|
Местный
  
Группа: Свой
Сообщений: 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-версии.
|
|
|
|
|
Dec 8 2008, 12:27
|
carpe manana
  
Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659

|
Цитата(Волощенко @ Dec 8 2008, 11:14)  В частности, сбои связаны со смещениями байт в блоке данных udp-пакетов для Ethernet-100. ... важен результат, и с Debug в EPCS он достигнут. А вариант Release приводит к сбоям По первому замечанию, если у вас так локализована ошибка, то ковыряйте в этом месте. По второму - если у вас код, который исполняется быстрее, приводит к сбоям, то скорее всего, код написан неаккуратно, вы что-то упустили. Пока вы не найдете ошибку, вы не сможете гарантировать ее отсутствие даже в Debug варианте. Возможно, она будет возникать гораздо реже, или отсутствовать сейчас, но в будущем вы повысите частоту ядра или понизите скорость периферии (до ethernet-10 или где-то еще), и у вас опять пойдут гонки времен исполнения аппаратных и программых частей. Есть еще малая вероятность ошибки компилятора.
|
|
|
|
|
Dec 8 2008, 20:25
|
Местный
  
Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617

|
Цитата(id_gene @ Dec 8 2008, 15:27)  гонки времен исполнения аппаратных и программых частей. согласен, видимо это та причина, по которой я использую Debug, надеюсь разобравшись с AN 351: Simulating Nios II Embedded Processor решение будет найдено(не хочется терять производительность)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|