Цитата(IXUS666 @ Oct 6 2012, 16:41)

Подскажите исходя из чего нужно задавать константы #define TCPIP_MBOX_SIZE, #define DEFAULT_UDP_RECVMBOX_SIZE, #define DEFAULT_TCP_RECVMBOX_SIZE, #define DEFAULT_ACCEPTMBOX_SIZE ? Или где можно про них почиать.
В ST'шном примерах последние три констаны определены как 2000 O_O.
У вас кстати ETH_RXBUFNB сколько стоит, 5? У меня до установки SYS_LIGHTWEIGHT_PROT 1, более менее стабильно работало только с ETH_RXBUFNB=1. Сейчас пробую с SYS_LIGHTWEIGHT_PROT 1 и ETH_RXBUFNB 5, на плате одновременно запущен TCP сервер и TCP клиент, работает это все уже часов 7, пока ничто не отвалилось но потихоньку накапливается lwip_stats.sys.mbox.err.
Константы выбираете исходя из задач и нагрузки. Добиваетесь отсутствия ошибок выделения памяти и записи в очередь на максимальной загрузке. У меня так:
Код
#define TCPIP_MBOX_SIZE 150
#define DEFAULT_UDP_RECVMBOX_SIZE 20
#define DEFAULT_TCP_RECVMBOX_SIZE 70
#define DEFAULT_ACCEPTMBOX_SIZE 20
#define ETH_RXBUFNB 10
Попробуйте для начала заменить в функции sys_mbox_new
Код
*mbox = xQueueCreate( archMESG_QUEUE_LENGTH, sizeof( void * ) );
на
Код
*mbox = xQueueCreate( size, sizeof( void * ) );
и посмотрите как ведут себя счётчики переполнений.
Убедитесь, что все очереди успешно создаются. Они отъедают кучу FreeRTOS, которой может не хватать.