Стек протоколов TCP / IP без ОС - PullRequest
10 голосов
/ 12 июля 2010

Я ищу стек TCP / IP, который можно использовать без ОС.Наш клиент «не любит» прерываний и не хочет иметь настоящую ОС на встроенной плате, которую мы создаем.Желательно перенести как можно больше функций в ПЛИС, потому что мы будем использовать только частоту 50–100 МГц.И я почти уверен, что лицензионные материалы под GPL не будут приемлемы для этого клиента.(Из-за юридического трения, связанного с ним. Они ожидают, что будут иметь полные неограниченные права на программное обеспечение, когда оно будет завершено.)

Ответы [ 7 ]

18 голосов
/ 13 июля 2010

uIP (микро IP) и lwIP (легкий IP) оба кандидата заслуживают рассмотрения.По словам первоначального разработчика обоих стеков - Адама Данкеля - одно из основных различий между ними заключается в следующем: «lwIP больше, чем uIP, но обеспечивает лучшую пропускную способность».Оба стека используют измененную лицензию BSD и используются в коммерческих продуктах.

2 голосов
/ 12 июля 2010

Это не обязательно отвечает на ваш вопрос так, как вы хотите, чтобы он отвечал (его нет в разделе комментариев, так как моя диатриба, вероятно, будет слишком длинной). Тем не менее, я думаю, что это все еще может быть полезным.

Пара баллов. Я думаю, что вы должны переучить своих клиентов о преимуществах и стоимости прерываний. Прерывания - это очень эффективный способ обработки управления устройством, и, если вы не слишком тщательно относитесь к своему кодированию, вряд ли вы сравните производительность с кодом, не управляемым прерываниями.

Во-вторых, использование программного обеспечения GPL предоставит полное им неограниченное право на программное обеспечение, просто оно не позволит им ограничивать других. Если вы имеете в виду, что они действительно хотят ограничить других, то я бы спросил, почему они думают, что должны иметь право использовать труды других без какой-либо отдачи.

Вы вполне можете найти стек TCP под более разрешающей лицензией, чем GPL (что позволяет им эффективно закрывать его). Если у вас есть компилятор C для вашей FPGA, вы можете взглянуть на uIP , который имеет весьма разрешительную лицензию из краткого обзора:

Copyright (c) 2001-2006, Адам Дункелс и Шведский институт компьютерных наук

Все права защищены.

Перераспределение и использование в исходной и двоичной формах с изменениями или без них разрешены при условии соблюдения следующих условий:

  1. При повторном распространении исходного кода должно сохраняться указанное выше уведомление об авторских правах, этот список условий и следующий отказ от ответственности.

  2. При повторном распространении в двоичной форме должно быть воспроизведено указанное выше уведомление об авторских правах, этот список условий и следующий отказ от ответственности в документации и / или других материалах, предоставляемых при распространении.

  3. Имя автора не может быть использовано для одобрения или продвижения продуктов, созданных на основе данного программного обеспечения, без специального предварительного письменного разрешения.

НАСТОЯЩЕЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ АВТОРОМ "КАК ЕСТЬ" И ЛЮБЫМИ ЯВНЫМИ ИЛИ ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЯ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ТОВАРНОГО ОБЕСПЕЧЕНИЯ И ФИТНЕСА ДЛЯ ОСОБЫХ ЦЕЛЕЙ ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОР НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЙ ПРЯМОЙ, НЕПРАВИЛЬНЫЙ, СЛУЧАЙНЫЙ, СПЕЦИАЛЬНЫЙ, ИСКЛЮЧИТЕЛЬНЫЙ ИЛИ КОСВЕННЫЙ УЩЕРБ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ЗАКУПКУ ЗАМЕЩЕНИЯ) ТОВАРЫ ИЛИ УСЛУГИ; УТРАТА ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ; ИЛИ ПРЕКРАЩЕНИЕ БИЗНЕСА) ОДНАКО ВЫЗЫВАЕТСЯ И НА ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, В КОНТРАКТЕ, СТРОГО ОТВЕТСТВЕННОСТИ, ИЛИ ИСПЫТАНИИ (ВКЛЮЧАЯ ХАРАКТЕРИСТИКУ ИЛИ ИНЫМ ОБРАЗОМ), ВОЗНИКАЮЩЕЙ В ЛЮБОЙ СПОСОБ ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ПОЛУЧИЛО ПОПРАВКИ.

Вот и все, нет «должен быть выпущен под лицензией GPL» или каких-либо других вирусных оговорок, и единственное указание - включение уведомления об авторских правах.

1 голос
/ 01 февраля 2011

Я написал стек Ethernet + TCP на «голом железе» для 16-битного DSP Texas Instruments.Отсутствие байтовой адресации было довольно неприятно;некоторые структуры данных хранят данные, упакованные по два байта на слово, в то время как другие хранят один байт на слово (в компиляторе C оба типа 'char' и 'int' представляют собой 16-битные типы со знаком).Ни один из кодов Ethernet или TCP не использует прерывания;обе они обрабатываются в процедуре «вызов так часто, как это удобно», которая обычно выполняется со скоростью около 100 раз в секунду.Производительность не суперская, но в целом она адекватная.Возможно, самая большая слабость в моем стеке - это то, что он не обрабатывает неупорядоченные пакеты (пакеты, поступающие вне последовательности, будут игнорироваться; они, надеюсь, будут повторно переданы после прибытия ожидаемых пакетов).То, что вы ищете, безусловно, выполнимо, хотя это не обязательно означает, что оно того стоит.

Кстати, мой стек TCP поддерживает довольно интересный «эхо-сервер» на порту 23. Любое количество клиентов telnet можетподключитесь к порту 23, и любые данные, которые они отправят, будут возвращены им.Хотя этот сервер просто отображает данные, он может быть адаптирован для отправки таких документов, как документы без сохранения состояния.Кто-нибудь когда-либо видел что-нибудь подобное?

1 голос
/ 16 июля 2010

В настоящее время я использую библиотеку lwIP на ARM Cortex-M3 с частотой 50 МГц без ОС. Это проект, основанный на эталонном комплекте Luminary Micro (в настоящее время TI) Stellaris Serial to Ethernet (http://www.luminarymicro.com/products/rdk-s2e.html).

)

Этот комплект содержит исходный код и схемы и дает нам прочную основу для разработки некоторых продуктов.

Я не связан с TI или Luminary, просто очень довольный клиент.

0 голосов
/ 10 августа 2015

Вы можете использовать встроенный кодер Simulink для его реализации. И тогда, если вам нужно, вы можете изменить сгенерированный код. (Конечно, не рекомендуется, если у вас есть другой вариант, например, одно из решений, указанных выше.)

0 голосов
/ 17 апреля 2013

Ну, я наткнулся на этот пост в результате поиска в FNET, и хотя он старый, он не ответил, поэтому я добавлю свои два цента ... Micromonitor - это загрузочный монитор, который при автономной работе поддерживает клиент-сервер TFTP, клиент DHCP, клиент-сервер ping и простой интерфейс командной строки на основе UDP. Он включает в себя демонстрационные приложения, которые позволяют подключать LWIP непосредственно к базовому драйверу Ethernet, используемому загрузочным монитором. Это позволяет использовать демо на любом порте микромонитора практически без изменений.

Нет прерываний, нет GPL ... просто цикл опроса. Примеры приложений включают несколько различных подключений: (LWIP, LUA, PICO-C, BWBASIC и т. Д.). Демо включает в себя HTTP-сервер (подключается к файловой системе UFS uMon, так что вы просто создаете базовые html-файлы), сервер команд на основе UDP, клиент telnet и клиент http-get. Большинство демонстраций являются продолжением демонстраций. которые идут с LWIP.

Проверьте это ... http://www.umonfw.com

0 голосов
/ 29 февраля 2012

Просто добавив примечание, что в Freescale FNET есть довольно новый стек TCP / IP с открытым исходным кодом, предназначенный для микроконтроллеров.Это лицензия LGPL / GPLv3, отличающаяся от некоторых других лицензированных BSD, поэтому она может не подходить для первоначального проекта плаката, но все же может иметь отношение к другим пользователям.В настоящее время он перечисляет Kinetis (Cortex-M4) в качестве поддерживаемой платформы вместе с некоторыми компонентами ColdFire.

...