Решил все же испробовать lwIP. Подключил плату напрямую к компу. Установил IP адреса:
IP_ADDRESS[0] = 192;
IP_ADDRESS[1] = 168;
IP_ADDRESS[2] = 1;
IP_ADDRESS[3] = 107;
NETMASK_ADDRESS[0] = 255;
NETMASK_ADDRESS[1] = 255;
NETMASK_ADDRESS[2] = 255;
NETMASK_ADDRESS[3] = 0;
GATEWAY_ADDRESS[0] = 192;
GATEWAY_ADDRESS[1] = 168;
GATEWAY_ADDRESS[2] = 1;
GATEWAY_ADDRESS[3] = 1;
Теперь посылаю каждую секунду на комп инфу:
void udp_client_send(void)
{
struct pbuf *p;
sprintf(str1, "Test Data...");
p = pbuf_alloc(PBUF_TRANSPORT, strlen(str1), PBUF_POOL);
if (p != NULL)
{
pbuf_take(p, (void *) str1, strlen(str1));
udp_send(upcb, p);
pbuf_free(p);
}
}
На PC поднимаю UDP сервер при помощи програмы Hercules, которая ничего не принимает.
Стандартная инициализация.
void udp_init_connection(void)
{
ip_addr_t dest_ip;
err_t err;
upcb = udp_new();
if (upcb != NULL)
{
IP4_ADDR(&dest_ip, 192, 168, 1, 107);
upcb->local_port = 1556;
err = udp_connect(upcb, &dest_ip, 1555);
}
if (err == ERR_OK)
{
udp_recv(upcb, udp_receive_callback, NULL);
}
}
Как думаете, куда копать?