Использую EasyWEB из, например, кейловских примеров.
Обращаюсь к lpc2378 по UDP - все работает, пока посылаю меньше 256 байт. Как только больше - наворачивается в файле tcpip.c в строке
if (!(ReadFrameBE_EMAC() & (IP_FLAG_MOREFRAG | IP_FRAGOFS_MASK))) // only unfragm. frames
Т.е. UDP пакет оказывается фрагментированным. Хотя во всяких уных книжках написано, что разбиение на фрагменты начинается для фрагментов больше MTU (который обычно 1500 байт)
Собственно - вопросы:
* зависит ли граница начала разбиения на фреймы UDP-пакетов от расположения луны, эзернет-карточки PC, драйверов, версии TCP стека, версии оса "
* какие танцы нужно выполнить при открытии сокета со стороны PC чтобы не было фрагментации ?
* какие танцы можно исполнить со стороны AVR ? Вроде бы в хидерах есть некое IP_FLAG_DONTFRAG
#define IP_FLAG_DONTFRAG 0x4000 // don't fragment IP frame
#define IP_FLAG_MOREFRAG 0x2000 // more fragments available
Непонятно однако, к какому месту приклаадывать это IP_FLAG_DONTFRAG