Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Nios+TSE
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
billidean
Доброго времени суток.
Я понимаю, что тема работы с Езернетом уже очень много где обсуждалась, но вопрос не в том как настроить PHY или почему нет линка.
У меня проблема в следующем: НИОС принимает пакеты, вроде без каких-либо проблем, идентифицирует их и отсылает в ответ разные пакеты.
Поток контролирую WireShark'ом. Иногда со стороны НИОСа пакеты идут непонятно какие, их содержимое сильно отличается от истинного, часть похожа на предыдущий пакет, часть на тот, который нужен, часть вообще какие-то ноли.
Файлы своего проекта прикладываю (проект сырой, поэтому не упрекайте в лишних кодах).
Нажмите для просмотра прикрепленного файла
Если не сложно, гляньте в чем может быть косяк.

З.Ы.: я что-то слышал, что такое может быть из-за кэша, но это было давно, и мне оно тогда не нужно было. В своем проекте вроде что-то сделал типа использования "alt_remap_uncached", но особо это не дало результатов. Пробовал использовать "alt_remap_cached" - результат еще хуже.
З.Ы.: и еще один не понятный момент - когда добавляю где-то или убираю принты, то программа как-то иначе начинает работать.
vadimuzzz
если есть подозрения на кэш - отключите его (кэш данных) в настройках процессора. помогло - разбираемся с кодом. неплохо бы еще указать, какая в проекте используется память. к примеру, если все сидит в on-chip, то толку от кэша не будет.
billidean
Проект НИОСа грузится с компа в ДДР, там и работает (работаю с отладочной платой BeMicro Ciclone IV). Он-чип памяти нет в проекте (кроме памяти для дескрипторов sgdma).
Сегодня вечером попробую отключить кэш данных, а кэш инструкций оставлю.
Но вот в описании функции alt_remap_uncached() сказано: The alt_remap_uncached() function remaps a region of memory for uncached access. The memory to map is len bytes, starting at address ptr., разве использование этой функции не достаточно, чтобы область памяти стала некэшируемой?
vadimuzzz
Цитата(billidean @ Nov 29 2013, 09:10) *
разве использование этой функции не достаточно, чтобы область памяти стала некэшируемой?

при условии ее правильного использования - да. но баги "умными" не бывают, всегда где-то плюс с минусом перепутали, или указатель не выровняли или еще какая-то ересь. поэтому проблемы с кэшем лучше отсечь сразу - если дело в нем, то останется проверить все вызовы alt_remap_uncached и им подобные, таких мест мало. если нет - неплохо бы глянуть времянки
billidean
Спасибо за совет.
Я сегодня глянул один из Ваших проектов по этой теме и увидел, что кэш отключен в НИОСе.
Отключил у себя, и все стало отлично (надеюсь надолго).
gosu-art
alt_dcache_flush_all(); должно работать и с кешем. У меня тоже не работает с alt_remap_uncached();
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.