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

 
 
 
Reply to this topicStart new topic
> Проблемы с NIOS при загрузки из EPSC
confflex
сообщение Jun 24 2010, 07:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082



Привет всем! Прошу помощи!
Сделал проект Cyclone EP1C12, EPCS16, память программы - SDRAM. Пока размер программы был небольшой, проблем не возникало т.е программу отлаживал чераз JTAG и грузил в EPCS. Различий в выполнении программы по JTAG и из EPCS по включению питания не наблюдалось. Программа увеличилась в размерах, в итоге был получен вариант, нормально работающий при загрузке через JTAG (т.е. из квартуса грузил sof - файл, из эклипса - программу для ниоса). После прошивки EPCS16 и передергивания питания проект работает, но наблюдаются баги. При повторной загрузки программы для ниоса через эклипс - все ок. Баги связанны с пересылкой пакетов через ethernet. Версия квартуса 9.0 (при установке sp2 - результат тотже). Не понятно в какую сторону "копать": то ли это некорректный программный код или проект для квартуса, то ли неадекватная запись/чтение из/в EPCS? ЧИтал дамп EPCS, но не смог сравнить с исходным (размер слитого флеш файла ~4.8Мб, а исходного ~270Кб). Как понять адекватность загрузки в EPCS через flash programmer.
И еще одно: при программировании через flash programmer получен следущий лог (привожу часть)

# Creating .flash file for the FPGA configuration
"$SOPC_KIT_NIOS2/bin/sof2flash" --epcs --input="xxx.sof" --output="xxx.flash"
Info: *******************************************************************
Info: Running Quartus II Convert_programming_file
Info: Command: quartus_cpf --no_banner --convert --device=EPCS128 --option=xxx
.opt xxx.sof xxx.pof

Почему EPCS128?

Будут у кого какие соображения?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 24 2010, 08:19
Сообщение #2


Гуру
******

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



зашить флеш:
nios2-flash-programmer --epcs --base=адрес имя_файла.flash
проверить флеш:
nios2-flash-programmer --verify --epcs --base=адрес имя_файла.flash

EPCS128 - при конвертации берется с запасом, это нормально
Go to the top of the page
 
+Quote Post
confflex
сообщение Jun 24 2010, 12:10
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082



лог после nios2-flash-programmer --verify --epcs --base=адрес имя_файла.flash

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Restetting and pausing target processor: OK
Verified 91KB in 2.6s <35 KB/s>
Leaving target processor paused

Как я понимаю все нормально !? До этого я пытался сливать файл командой nios2-flash-programmer --read и сравнивать файлы по содержимому. Ничего не получалось.
Как тогда могут по разному работать проекты из EPCS и через JTAG?
Ещё вопрос по максимальному размеру программы для НИОСа, кот. можно загрузить в EPCS16. EPCS16 имеет размер памяти 16777216 бит, EP1C12 имеет максимальный размер загрузочного файла - 2323249 бит, т.е для программы ниоса остается 14453967 бит (~ 1.7МБ). Это теоретически, а как практически?
Go to the top of the page
 
+Quote Post
torik
сообщение Jun 24 2010, 12:40
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



А винда какая?


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
confflex
сообщение Jun 24 2010, 13:03
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082



XP SP3 32bit
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 24 2010, 13:15
Сообщение #6


Гуру
******

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



Цитата(confflex @ Jun 24 2010, 19:10) *
Как тогда могут по разному работать проекты из EPCS и через JTAG?

например: времянки, фокусы с кэшем.
Цитата
Ещё вопрос по максимальному размеру программы для НИОСа, кот. можно загрузить в EPCS16. EPCS16 имеет размер памяти 16777216 бит, EP1C12 имеет максимальный размер загрузочного файла - 2323249 бит, т.е для программы ниоса остается 14453967 бит (~ 1.7МБ). Это теоретически, а как практически?

так и есть. еще сжатие для конф. файла включить.
Go to the top of the page
 
+Quote Post
KIM
сообщение Jun 24 2010, 16:19
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-10-06
Пользователь №: 21 655



А что за девайс у тебя, самодельный или может отладочная плата какаято? У меня была подобная проблема, вот ссылка на тему на этом форуме
нестабильная загрузка nios
Там оказалась проблема с платой, помехи по питанию убрали и все стало нормально
Go to the top of the page
 
+Quote Post
confflex
сообщение Jun 25 2010, 03:25
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082



Цитата(KIM @ Jun 24 2010, 20:19) *
А что за девайс у тебя, самодельный или может отладочная плата какаято? У меня была подобная проблема, вот ссылка на тему на этом форуме
нестабильная загрузка nios
Там оказалась проблема с платой, помехи по питанию убрали и все стало нормально


Плата самодельная, ещё с теми извратами не по моей вине. sad.gif
В том то и дело что у меня всё стабильно. Стабильно через JTAG работает как надо, и стабильно из EPCS работает не верно. Неправильность заключается в том, что обмен пакетами через Ethernet прекращается стабильно с 3-й попытки. Т.е. если бы при переедёргивании питания каждый раз было бы по-разному, грешил бы на питание.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 25 2010, 03:33
Сообщение #9


Гуру
******

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



воткните в систему jtag-uart, в опасных местах (типа while (какой-то флаг взведен)) наставьте printf, локализуйте баг. самописных компонентов нет?
Go to the top of the page
 
+Quote Post
confflex
сообщение Jun 25 2010, 03:36
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082



Цитата(vadimuzzz @ Jun 24 2010, 17:15) *
например: времянки, фокусы с кэшем.


Под времянками понимается Fmax после разводки (здесь всё вроде нормально) и констрейны для SDRAM (здесь нет 100% понимания, но я всегда пытался "грешить" на SDRAM, но ни разу не нашёл подтверждения этому, тесты SDRAM проходили, были попытки "зацепится" за что то путём тупой переразводки в Квартусе после незначительных изменений в проекте, переразводка ни на что не и разу не повлияла.)?
Про фокусы с кэшем можно подробней?

Цитата(vadimuzzz @ Jun 25 2010, 07:33) *
воткните в систему jtag-uart, в опасных местах (типа while (какой-то флаг взведен)) наставьте printf, локализуйте баг. самописных компонентов нет?


так когда с EPCS гружу как JTAG (printf) использовать?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 25 2010, 04:21
Сообщение #11


Гуру
******

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



Цитата(confflex @ Jun 25 2010, 10:36) *
Под времянками понимается Fmax после разводки?

Fmax сравнительно легко отследить, хуже если где-нибудь в протоколе обмена на таймаутах подвисает.
Цитата
Про фокусы с кэшем можно подробней?

если в драйвере криво реализована работа с кэшем, пакеты будут приниматься неправильно. диагностировать сравнительно легко - отключить кэш данных и проверить.
Цитата
так когда с EPCS гружу как JTAG (printf) использовать?

а в чем проблема? главное, чтоб кабель подключен был. грузитесь с EPCS, а отладочную информацию кидаете по JTAG в nios2-terminal
Go to the top of the page
 
+Quote Post
confflex
сообщение Jul 12 2010, 12:35
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082



Проблема решилась (скорее всего временно), путем создание своего Linker script'а на базе того, который генерируется автоматически (назначением нового диапазона адресов для секций памяти stack и heap). С увеличением объема программы глюки при передаче пакетов через ethernet повторились, но уже и при загрузке через JTAG. Начал исследовать то, как линкер создает "карту" памяти и нашел в nios2-gnutools утилиту nios2-elf-ld, которая выдала следующее (memorymap.png):

Прикрепленное изображение

а утилита nios2-elf-objdump (objdump.png):

Прикрепленное изображение


Каким образом можно избежать перекрытия секций памяти? и есть ли они в моем случае?
Go to the top of the page
 
+Quote Post

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

 


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


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