Цитата(esaulenka @ Jan 21 2013, 15:06)

1) (общетеоретический). Посоветуйте, где достаточно подробно почитать про низкоуровневые (TCP/UDP и "ниже") вещи ? То, что я нарыл, это пяток страничек на каждый уровень, а потом "перейдём к настройке web-сервера". По-русски читаю чуть лучше, чем по-английски :-)
Выбираете стек - и в описаниях стека достаточно разжевано, документацию Адам Данкелс пишет хорошую. Вот еще
http://lwip.wikia.com/wiki/LwIP_WikiЦитата(esaulenka @ Jan 21 2013, 15:06)

2) (более практический) какой протокол мне выбрать? сейчас железка общается с ПК по своему собственному протоколу через UART и USB (через эмуляцию UART). Есть желание добавить ethernet, а поверх него пустить тот же протокол. Вопрос - что бы такое пустить по ethernet? "Чистый" IP не хочется по избежание геморроя со стороны ПК (сейчас - всевозможные windows, в планах linux, вероятны android/ios). Контроль доставки, который даёт TCP, не очень актуален - сейчас этим занимается наш протокол (не очень оптимально, т.к. задумывалось это под медленные uart'ы, ну да фиг с ним). Сделать UDP ?.. Или для простоты понимания программерами ПК сделать TCP, а с контролем доставки всё-таки разобраться (см. пункт 1) ?
TCP или UDP выбирать Вам.
TCP основан на соединении и передаче группы пакетов. UDP - просто транспорт, пакеты, их очередность разбирать приложению.
TCP для некритичных ко времени приложений, UDP - для realtime; для большого кол-ва соединений/клиентов, но короткими посылками.
Поверх TCP куча протоколов (HTTP, HTTPs, FTP, SMTP Telnet ), могут погнадобится в будущем.
TCP - гарантия доставки данных, UDP - ее нет.В TCP есть управление потоком - в UDP нет. В TCP есть восстановление после ошибки, в UDP нет. Но при этом TCP тяжеловеснее, чем UDP.
Цитата(esaulenka @ Jan 21 2013, 15:06)

3) (совсем уж практический) в текущем софте RTOS нет, и желания её туда прикручивать у меня немного. Стек TCP(UDP) хорошо бы запихать в обработчик прерывания (с учётом вложенных прерываний это не так страшно, холивар прошу не разводить). Посмотрел uIP и lwIP, они заточены под супер-луп или отдельную задачу в RTOS. Кто-нибудь стек посоветует? Самому писать без опыта (опять см. пункт 1) будет очень долго, подкладывать костыли под тот же uIP - больно некрасиво...
Совсем уж идеально - чтоб автор знал о модуле MAC в контроллерах LPC и не очень пытался затачиваться под что-то совсем другое :-)
Использовал LWIP стек + TCP client + TCP server + HTTP server(dynamic pages) + SNTP client в одном устройстве - uIP для всего этого не подошел бы просто. Насчет прерываний - TCP протокол с большим временем отклика (около 250 ms - 500ms), его реализуют как фоновую задачу - поэтому супер луп ну или если с RTOS - фоновая задача с невысоким приоритетом. TCP на прерываниях особо не имеет смысла реализовывать так как тайминг опроса буферов в стеке LWIP ~500ms/250ms, задержки в таких прерываниях могут быть очень большими что плохо.Можно таймер сделать на прерываниях а сам обработчик протокола все равно вызывать из основной программы. Что касается UDP, то так как он более заточенный для быстрого обмена, реал тайма - то можно его реализоавть наверное и по прерываниям(но в стеке LWIP реализовано как вызов периодического обработчика из основной программы если мне не изменяет память, поэтому придется перелопачивать самому - а есть ли смысл?).