Ср окт 24, 2018 21:07:25
А почему? Что-то не могу увидеть. Вроде же state этот не приравнивается ни к чему, чтобы это утверждать.viiv писал(а):(pcb->state == LISTEN) всегда false?
Ср окт 24, 2018 21:11:43
Ср окт 24, 2018 21:24:58
enum tcp_state {
CLOSED = 0,
LISTEN = 1,
....
};
#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \
LWIP_PLATFORM_ERROR(message); handler;}} while(0)
struct tcp_pcb *
tcp_listen_with_backlog_and_err(struct tcp_pcb *pcb, u8_t backlog, err_t *err)
{
....
LWIP_ERROR("tcp_listen: pcb already connected",
pcb->state == CLOSED,
res = ERR_CLSD; goto done);
/* already listening? */
if (pcb->state == LISTEN) {
lpcb = (struct tcp_pcb_listen*)pcb;
res = ERR_ALREADY;
goto done;
}
....
}
struct tcp_pcb *
tcp_listen_with_backlog_and_err(struct tcp_pcb *pcb, u8_t backlog, err_t *err)
{
....
do {
if (!(pcb->state == CLOSED)) {
LWIP_PLATFORM_ERROR("tcp_listen: pcb already connected"); res = ERR_CLSD; goto done;}
} while(0)
/* already listening? */
if (pcb->state == LISTEN) {
lpcb = (struct tcp_pcb_listen*)pcb;
res = ERR_ALREADY;
goto done;
}
....
}
Ср окт 24, 2018 21:31:29
if (pcb->state != CLOSED)) {
LWIP_PLATFORM_ERROR("tcp_listen: pcb already connected");
res = ERR_CLSD;
goto done;
}
/* already listening? */
if (pcb->state == LISTEN) {
lpcb = (struct tcp_pcb_listen*)pcb;
res = ERR_ALREADY;
goto done;
}
Ср окт 24, 2018 21:37:15
Ср окт 24, 2018 21:48:58
Ср окт 24, 2018 21:54:43
Ср окт 24, 2018 22:16:46
Пт окт 26, 2018 10:07:41
Пт окт 26, 2018 10:49:47
Пт окт 26, 2018 11:30:36
Пт окт 26, 2018 11:36:52
Пт окт 26, 2018 19:04:17
Сб окт 27, 2018 14:29:06
Сб окт 27, 2018 14:36:01
Сб ноя 03, 2018 15:24:50
void kmp_send(const uint8_t *msg, uint8_t size) {
uint8_t buf[size + 2];
...
}
Сб ноя 03, 2018 16:11:29
Сб ноя 03, 2018 16:25:14
Сб ноя 03, 2018 19:36:32
Сб ноя 03, 2018 21:49:09
А если эта функция вызвана из 1500 последовательно вызванных функций, в которых в свою очередь тоже выделялись переменные или массивы в стеке? Будет принципиальная разница?ARV писал(а):если у вас сободно хотя бы 300 байт ОЗУ - никакой принципиальной разницы в работе вы не увидите.