ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
591130
Evgeny_CD, Архитектор (08.04.2015 14:45, просмотров: 11817)
Все помнят мои посты про всякие синтетические среды для виртуализации разработки? Так вот, будущее наступило. SmartFusion2 -> в TQ144. M2S005 и M2S010. С гигабитным Ethernet на борту. http://www.microsemi.com/products/fpga-soc/soc-fpga/smartfusion2#product-tables
http://caxapa.ru/590951.html
Младший камень TQ144 вроде как 17 евро стоит - непонятно, насколько спекульская цена. И его пока еще негде - нет - это они совсем недавно решили порадовать нас правильным корпусом. Унутре Cortex-M3 166 Мгц, 128 FLASH 64 SRAM, DMA и прочий "полный фарш" --> Единственный минус - Ethernet без синхронизации, так что синхронизацию придется колхозить по месту. Далее все просто. Берем лялиховый копмук с 10G Ethernet на боту. Intel® Xeon® D - самое то http://caxapa.ru/584927.html Берем 1G свитч, в котором есть хотя бы один порт 10G - такие есть на рынке. Или, на худой конец, берем 8-port 10-Gigabit ProSafe® Plus Switch XS708E http://caxapa.ru/388626.html он сейчас чуть ли не 1k$ стоит и доступен много где И делаем кучку махоньких платок - одна платка = один интерфейс. Надо тебе в проект видеозахват - делаешь махонький модуль с TV декодером, указанным камнем, и RJ45. Обмен с хостом - Ethernet raw, в лялихе такое из user space без проблем. Надо тебе аццкий АЦП|ЦАП - аналогично. А лялихе пишешь "синтетические дрова". Которые имеют API, с которым работает пикладной код, в точности такое же, как в целевой системе. Да, мегапоток, который будет "симулировать" работу периферии, можно запустить на отдельном ядре - и на этом задержек не будет. Ну и RTOS с синтетическим портом, под которой крутится целевой код. Эта тема много раз обсуждалась, тут изобретать нечего. Что имеем в итоге: * мгновенное прототипирование, особенно если есть запас нарабтанных модульков для целевой области * ПО модулька примитивное, по сути, никакой локальной обработки данных: получил данные от периферии - засунул в Eternet. Обратно аналогично * Можно сделать каркас целевого приложения, скажем на Tcl. Т.е., запускаешь ОСьку, под ней потоки, а в каждом потоке - запускаешь Tcl интерпретатор в режиме встраивания, и делаешь первую версию прототипа решения с невероятной скоростью. * большой запас по всем ресурсам позволяет решить много важных задач этапа разработки -- капчуринг террабайтных данных позволяет тщательно исследовать работу периферии и найти там всякие "тонкие эффекты", пока юзера не предъявили "толстые претензиии" -- тот же капчуринг позволяет тщательно протоколировать работу программы, всякие там тесты покрытия и проч. Все описанное было возможно и при 100 Мбит Ethernt, но там латентность и пропускная способность все же на порядок хуже. D1 оцифрованное "в лоб" видео по 100 Мбит не передать и проч. "Гигабит на палтке" сильно снижает вероятность, что канал связи с хостом станет проблемой, которая ограничит возможности. Критика?