Цитата(VslavX @ Mar 11 2009, 11:08)

LwIP с самого начала поддерживал несколько интерфейсов и имеет зачатки маршрутизации.
Насчет "убийцы" - вопрос спорный - мне кажется что ниши у MQX и перечисленных в топике ОС несколько разные. Упомянутые ОСи - они хороши для "моноконтроллерных"

устройств, добавляете внешний чип S(D)RAM - уже "не то" - и ноги "отъедены", и место на плате занято, иногда и микропотребление/спящий режим не обеспечивается.
Посмотрел MQX-овский стек - после обнаружения копирования некоторых отсылаемых пакетов в MAC-драйвере интерес несколько поугас. Так что - мое мнение - MQX всего лишь "один из", а отнюдь не "убийца"

. В качестве примера, исходники безусловно полезны.
Вы наверно увидели функцию типа memcpy процедуре ENET_send_MAC
Там написано что это нужно в частности в случае невыровненности данных в буфере.
Почему это может случится?
Тут как раз особенность сложных IP стеков.
В IP стеках для ускорения любят применять зеркальную отсылку пакетов.
Например в пакете Echo при использовании ping-а стек не выделяет новый буфер для ответа,
а просто переставляет адреса ну и там кое-что еще и отсылает обратно.
Все нормально когда маршрут то-же самый.
Но может оказаться такая запись в таблице маршрутизации которая заставит ответу пойти через другой интерфейс,
а этот интерфейс может оказаться PPP или вообще тоннелем c 3-х этажной структурой заголовков.
Тогда отраженный пакет и окажется невыровненным из-за кардинальной смены заголовков.
И тогда его надо перемещать по границе буфера где-то на уровне драйвера.
К тому же данные в связи с особненностью MAC контроллера Freescale могут быть размещены только по границе 4, а лучше 128 (еще быстрее пересылка будет).
При приеме они так выровнены автоматически, а при передаче редко но могут быть исключения.
Ответ пинга через другой интерфейс эт вообщем скорее ошибка роутинга.
Или закольцовывание маршрутов.
Тут нужен уже RIP протокол. И опять же, он есть в открытом MQX!
Вообще не думаю что вы найдете в стеке MQX какие-нить явные ляпы. Такие оси не с потолка стоят по 100 тыс.$ в полном комплекте.
Их используют там где реально надо убить конкурентов скоростью, компактностью, надежностью и ценой конечного изделия.
Я всегда привожу интересный факт, что вот есть роутеры Linksys WRT54G с популярной книжкой как хакать ихний линукс.
Но когда понадобилось сделать еще более дешевые и надежные роутеры с шифрацией WPA/2-PSK linksys выбрал операционку VxWorks!
В той же книжке дается обзор той самой кучи линуксового софта которую можно поставить на WRT54G.
Что мы там видим в первую очередь:
Жесткий список совместимых с софтом моделей. Цифрой меньше или цифрой больше -и можете стреляться, никакой портабельности нет. Софт не полетит и вы ничем ему не поможете.
Из загрузочных каналов только TFTP и HTTP.
Куча каких-то недоделаных пингеров, дамперов, тестеров, килеров, администраторов, WEb апликаций. Куски PPP и PPTP в виде демонов, ясное дело без всякого понятно описанного прикладного API. Тот самый SSH с которым непонятно че делать в интенете.
Как только встречаем какой-то пакет Talisman VPN c IPSec, то оба! он сразу платный, стоп халяве.
И все список кончается. Где тут че-нить для embedded?
Словом кто-бы че не кричал про богатства, универсальность и портабельность линукса в embedded области - это пустой треп.