DASM 0 20 апреля, 2010 Опубликовано 20 апреля, 2010 · Жалоба "по 2) максимально быстро сумма считается компонентом с DMA (не sgdma, а именно компонент с Avalon-MM мастером). по идее, туда же можно прикрутить логику для работы с заголовками" - а нету ли примерчика как КС считать одновременно с передачей по DMA ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 20 апреля, 2010 Опубликовано 20 апреля, 2010 · Жалоба Вылетаем на приеме с rc = -22 похоже на то, что данные не выровнены. попробуйте так: void* tx_data = (void*) ...; /* pointer to data to send */ void* rx_buffer = (void*) ...; /* pointer to rx buffer */ а нету ли примерчика как КС считать одновременно с передачей по DMA ? на альтере есть пример nios crc acceleration. не вижу проблем приделать к нему передачу по DMA Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба наконец-то дошли руки до альтеровского TSE. накидал проект NIOS+Ethernet и к нему драйвер. код, который приводили в этой ветке читать было лень, написал с нуля + кастрировал по возможности. что нужно, чтобы собрать и запустить: проверить в system.h имена/адреса компонентов, убрать Init_SDR (это для железа на моей плате), закомментировать alt_printf`ы (если нет jtag_uart). в network.c есть огрызок ARP+ICMP, так что проц может отвечать на пинги. пропажи/размножения пакетов не замечено. int MAC_init() - инициализация int tse_sgdmaRx_isr(void * context, alt_u32 irqnum) - обработчик прерывания на прием int tse_mac_raw_send(char * data, unsigned data_bytes) - отсылка пакета (синхронная транзакция) nios_eth.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wpost 0 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба vadimuzzz огромное спасибо! посмотрим внимательно! Есть вопрос не совсем по TSE... с подобной проблемой ранее сталкивался dim99 - по шагам программа работает как надо, в "бегущем" режиме в памяти нули... но в моем случае проблемы уже с DMA... кеширование не использую, так что alt_dcache_flush не помогает... интересна природа явления... ставлю контрольную точку за циклом передачи DMA после снятия сигнала bysy. и смотрю память - часть данных есть и где нужно, а часть данных нули (неизмененная)... через несколько шагов в низ по программе в памяти появляются пропавшие данные, но уже поздно... по шагам прохожу все данные оказываются на своих местах как нужно... в чем может быть фишка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба в чем может быть фишка? трудно сказать, слишком неопределенно. если дело не в кэшах, то м.б. флаги оптимизации компилятора (наблюдал "интересные" вещи, если -Os включен). ну, а если проблема именно с DMA, то выбросить все лишнее и код смотреть. какой режим, память-память или с периферией? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reanimatorr 1 15 января, 2011 Опубликовано 15 января, 2011 · Жалоба Теперь и у меня встал вопрос Ethernet-a. Есть своя отладочная плата с циклоном 2 и SDRAM, к ней можно прицепить все что угодно. Есть Nios2. Нужен TCP порядка 16-32 сессий одновременно, поток данных небольшой (1 Мбит максимум). Собственно, какой наикратчайший путь получения результата? Т.е. какую выбрать микросхему, какую корку к ниосу прицепить и какую ось ставить чтобы у нее были драйвера к этой корке? Есть ли накатанное решение или все с нуля пишут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 15 января, 2011 Опубликовано 15 января, 2011 · Жалоба Т.е. какую выбрать микросхему, какую корку к ниосу прицепить и какую ось ставить чтобы у нее были драйвера к этой корке? Есть ли накатанное решение или все с нуля пишут? если ориентироваться NicheStack TCP/IP, то список поддерживаемых PHY можно посмотреть в драйверах. добавить свою микросхему - пару десятков строчек, если это простенькие чипы, а не монстры а-ля марвел. если же хочется ось, то посмотрите тут: http://www.alterawiki.com/wiki/UCOSII http://www.alterawiki.com/wiki/ECos http://www.alterawiki.com/wiki/FreeRTOS http://www.alterawiki.com/wiki/UClinux Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reanimatorr 1 15 января, 2011 Опубликовано 15 января, 2011 · Жалоба Почитал доки от альтеры, да все у них уже есть. Triple Speed Ethernet корка для работы с PHY (считай любым ибо стандартный интерфейс), для нее драйвера в BSP и NicheStack, завязанный на UCOS. Базовое решение есть, будем изучать. Закажу DP83848C как первую микросхему из доки по TSE. Очередной раз спасибо, ув. vadimuzz :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reanimatorr 1 16 января, 2011 Опубликовано 16 января, 2011 · Жалоба Увы, TSE в мой дизайн уже не влезает ( С точки зрения стоимости выгоднее помещать MAC в плис (lan91c111 стоит почти тыщу, в то время как любой другой PHY порядка двух сотен). С точки зрения простоты прицепляния по идее лучше внешний MAC. Есть ли альтернативы lan91c111 по цене? И если у PHY интерфейс стандартизирован, то как обстоит дело с внешним MAC? У меня есть старый Ethernet модуль на основе Wiznet W5100 (там есть и PHY и MAC и TCP и даже PPPoE), можно ли к нему прицепить NicheStack? (просто надо больше чем 4 сокета визнетовских) Или не морочать себе голову и развести плату с DP83848C и плисиной пожирнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
avacs 0 17 января, 2011 Опубликовано 17 января, 2011 · Жалоба наконец-то дошли руки до альтеровского TSE. накидал проект NIOS+Ethernet и к нему драйвер. код, который приводили в этой ветке читать было лень, написал с нуля + кастрировал по возможности. что нужно, чтобы собрать и запустить: проверить в system.h имена/адреса компонентов, убрать Init_SDR (это для железа на моей плате), закомментировать alt_printf`ы (если нет jtag_uart). в network.c есть огрызок ARP+ICMP, так что проц может отвечать на пинги. пропажи/размножения пакетов не замечено. int MAC_init() - инициализация int tse_sgdmaRx_isr(void * context, alt_u32 irqnum) - обработчик прерывания на прием int tse_mac_raw_send(char * data, unsigned data_bytes) - отсылка пакета (синхронная транзакция) Респект vadimuzzz за выложенный проект (я так понял это что то наподобие SDR приемника с Eth), очень помог в освении TSE. Теперь вопрос ближе, ни кто не реализовывал Telnet server, без использования OS, на базе данного проекта. Я попытался... но чет не очень разобрался в протоколе Telnet... :laughing: Для анализа TCP\IP использую Wireshark, но наложение протокола Telnet на IP-TCP не понял. может кто подскажет где искать или кто делал или делает? Собственно нужен упрощенный телнет, с авторизацией и настройкой 5-10 параметров. Спасибо всем кто откликнется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 18 января, 2011 Опубликовано 18 января, 2011 · Жалоба Увы, TSE в мой дизайн уже не влезает TSE - это слишком неоднозначно, какую версию его вы пробовали? еще есть опенкоровский MAC. Сколько ресурсов доступно? С точки зрения простоты прицепляния по идее лучше внешний MAC. Есть ли альтернативы lan91c111 по цене? И если у PHY интерфейс стандартизирован, то как обстоит дело с внешним MAC? У меня есть старый Ethernet модуль на основе Wiznet W5100 (там есть и PHY и MAC и TCP и даже PPPoE), можно ли к нему прицепить NicheStack? (просто надо больше чем 4 сокета визнетовских) я в свое время отказался от внешнего MAC именно из-за цены, ничего не нашел. даже сложилось мнение (личное), что внешние MAC`и в принципе непопулярны, потому и дороги. т.к. практически в любом семействе современных контроллеров/процессоров есть модификации с MAC на борту. ну и насчет простоты прицепляния поспорю - RMII - 6 проводов. тут смотрели? http://www.smsc.com/index.php?tid=145 http://www.smsc.com/index.php?tid=149 Теперь вопрос ближе, ни кто не реализовывал Telnet server, без использования OS, на базе данного проекта. я видел, но не на базе этого проекта. поищите на alterawiki.com по superloop-что-то-там-сервер. смысл такой: в NicheStack есть возможность работать без оси (тот самый superloop). соответственно, для проекта будет достаточно собрать его с 2-мя либами: NicheStack и LibTSE. подозреваю, что это будет жрать довольно много памяти, как раз от этого я уходил, поэтому в том моем проекте код такой куцый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
avacs 0 18 января, 2011 Опубликовано 18 января, 2011 · Жалоба А реализовать сервер Telnet, как у вас реализован был запрос ЭХО и АРП без использования NicheStack не пробовали (или может кто другой пробовал или сталкивался с подобной проблемой)? А то в принципе минималистически получилось бы... можно было бы написать свой клиент к своему своеобразному серверу... но хотелось бы сделать что-то ближе к стандартным вещам (типа стандартных протоколов)... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reanimatorr 1 18 января, 2011 Опубликовано 18 января, 2011 · Жалоба TSE - это слишком неоднозначно, какую версию его вы пробовали? Я пока остановился на чтении документации ) там вроде как даже самый минимальный вариант больше 1500 LE требует. Сколько ресурсов доступно? ; Device ; EP2C8Q208C8 ; ; Total logic elements ; 6,484 / 8,256 ( 79 % ) ; ; Total combinational functions ; 5,844 / 8,256 ( 71 % ) ; ; Dedicated logic registers ; 4,199 / 8,256 ( 51 % ) ; ; Total registers ; 4267 ; ; Total pins ; 127 / 138 ( 92 % ) ; ; Total memory bits ; 50,944 / 165,888 ( 31 % ) ; ; Embedded Multiplier 9-bit elements; 4 / 36 ( 11 % ) ; ; Total PLLs ; 1 / 2 ( 50 % ) ; Ну впрочем заниматься уталкиванием до предела не хочется для первой пробы - я для этого проекта могу и обойтись интерфейсом попроще, просто хотелось уже на нем попробовать Ethernet. отказался от внешнего MAC именно из-за цены Ну кстати те же W5100 и DP83848 стоят одинаково (~200р), хотя в первом все хардварное, даже ТСР, а второй только PHY. Выглядит нелогично. Хотя мне важнее софтовая поддержка и время разработки ибо устройства практически единичные. Мысль насчет контроллеров понял, PHY из них выносят насколько понимаю из-за потребления. Собственно как всегда на рынке есть десятки решений, и информация о них может быть представлена одинаково красиво, но одно из них мейнстрим, а другие тупик - потому и спрашиваю что лучше осваивать ) будет жрать довольно много памяти, как раз от этого я уходил, поэтому в том моем проекте код такой куцый Для onchip_mem делали? А какая плис? avacs А реализовать сервер Telnet без использования NicheStack Ну вам же все-равно TCP нужен, так что без стека (хотя бы зарезанного) не получится. Я когда использовал микрочиповский стек без оси то все по большому счету сводилось к периодическому вызову StackTask(), причем время между вызовами практически любое (ну, естественно, ограничивается объемами ходящей информации). Полагаю что здесь что-то похожее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 18 января, 2011 Опубликовано 18 января, 2011 · Жалоба Ну впрочем заниматься уталкиванием до предела не хочется для первой пробы - я для этого проекта могу и обойтись интерфейсом попроще, просто хотелось уже на нем попробовать Ethernet. есть еще вариант - свой MAC написать, огрызок. как-нибудь займусь. Ну кстати те же W5100 и DP83848 стоят одинаково (~200р), хотя в первом все хардварное, даже ТСР, а второй только PHY. а w5100 может пакеты напрямую, минуя стек выдавать? Для onchip_mem делали? А какая плис? да, тогда была только внутренняя память, 3c25. в новом варианте уже есть sdram Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reanimatorr 1 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба свой MAC написать Для меня пока проблемно счетчики с регистрами соединять в верилоге ) а w5100 может пакеты напрямую, минуя стек выдавать? Да, может. MAC RAW mode. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться