реклама на сайте
подробности

 
 
> LwIP инициировать передачу
ConstHw
сообщение Nov 20 2015, 08:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 12-11-15
Пользователь №: 89 287



Разбираюсь с LwIP, c записью данных (PC пишет в Zynq) все вроде понятно.
Пытаюсь иниицировать передачу. Приходит пакет-команда "дай данных", в обработчике пакета вызываю функцию
Код
err_t recv_callback(void *arg, struct tcp_pcb *tpcb,
                               struct pbuf *p, err_t err)

    if (!p) {
        tcp_close(tpcb);
        tcp_recv(tpcb, NULL);
        return ERR_OK;
    }
    /* indicate that the packet has been received */
    tcp_recved(tpcb, p->len);

///// ТУТ ОБРАБОТАЛИ КОМАНДУ И ВЫЯСНИЛИ ЧТО НАДО ЧИТАТЬ/////

for (i=0;i<10;++) // Запускаем передачу 10 раз
        if (tcp_sndbuf(tpcb) > p->len) { //Проверили что есть место
                        tcp_write(tpcb, tcptrx->curr_addr, step, 1); //Пищем пакет длины step
            tcptrx->curr_addr=tcptrx->curr_addr+step; // Инкерементим Step
            xil_printf("    Curr Addr : 0x"); putnum(tcptrx->curr_addr);xil_printf("\r\n");
        }
    }


В консоли вижу пробегание счетчика адресов, но на приемной стороне ничего не появляется.
Мне кажется, что я неправильно инициирую передачу. Как сделать это правильно? Чтобы сначала закончить обработку принятого pbuf а потом начать свою передачу?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 17:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.02157 секунд с 7
ELECTRONIX ©2004-2016