lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] FreeRTOS LwIP 2.1.2 PPPoS pppos_input hangs the system


From: Артём Скворцов
Subject: [lwip-users] FreeRTOS LwIP 2.1.2 PPPoS pppos_input hangs the system
Date: Tue, 27 Aug 2019 19:51:22 +0300

Hello! I can't solve the problem. May be you have some explanation or advice what to check?

System hangs after first byte received using ppos_input
This function invokes in UART RX interrupt:

void USART1_RxCpltCallback(void)
{
u8 v;
v = st.ppprxd;
pppos_input(st.ppp, &v, 1);
USART1_RxEnable();
}

I also tried to collect a packet and send with pppos_input_tcpip by timeout timer interrupt. Hangs too:
// After 2ms of last byte received
void Timer5_PeriodElapsed(void)
{
u16 i;
if (0 != usartpppst.rxcnt)
{
pppos_input_tcpip(st.ppp, usartpppst.rxbuf, usartpppst.rxcnt);
}

static u32_t output_cb(ppp_pcb *pcb, u8_t *data, u32_t len, void *ctx)
{
HAL_UART_Transmit(&huart1, data, len, 0xFFFF);
return len;
}

Initialization procedure in main thread:

tcpip_init(ppp_init_done, (void*)&init);
while (! init)
vTaskDelay(1 / portTICK_RATE_MS);

st.ppp = pppapi_pppos_create(&st.netif,
       output_cb, status_cb, 0);
printf("PPP=%lu\r\n", (u32)st.ppp);

pppapi_set_default(st.ppp);

ppp_set_auth(st.ppp, PPPAUTHTYPE_PAP, "pppclient", "12345678");

holdoff = 0;
pppapi_connect(st.ppp, holdoff);

vTaskDelay(100 / portTICK_RATE_MS);
USART1_RxEnable();

HAL uart interrupt preemption priority = 6
HAL systick priority = 5 (used by FreeRTOS) 
configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY = 5

lwiopts.h
#define NO_SYS                          0
#define PPP_INPROC_IRQ_SAFE 1
#define LWIP_TIMERS                     1
#define LWIP_TCPIP_CORE_LOCKING         1
#define SYS_LIGHTWEIGHT_PROT            1
#define MEM_LIBC_MALLOC                 0
#define MEMP_MEM_MALLOC                 0
#define PPP_SERVER                      1
#define PAP_SUPPORT 1
#define LWIP_PPP_API 1
#define TCPIP_THREAD_STACKSIZE 200
#define DEFAULT_THREAD_STACKSIZE 200
#define TCPIP_MBOX_SIZE                 20
#define DEFAULT_THREAD_PRIO 3
#define DEFAULT_THREAD_PRIO 3
#define DEFAULT_RAW_RECVMBOX_SIZE 20
#define DEFAULT_UDP_RECVMBOX_SIZE 20
#define DEFAULT_TCP_RECVMBOX_SIZE 20
#define DEFAULT_ACCEPTMBOX_SIZE 20

Thanks in advance!

-- 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]