FreeRTOS LwIP 2.1.2 PPPoS pppos_input hangs the system

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

FreeRTOS LwIP 2.1.2 PPPoS pppos_input hangs the system

saew
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!

-- 


_______________________________________________
lwip-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/lwip-users
Reply | Threaded
Open this post in threaded view
|

Re: FreeRTOS LwIP 2.1.2 PPPoS pppos_input hangs the system

Sylvain Rochet
Hi,

On Tue, Aug 27, 2019 at 07:51:22PM +0300, Артём Скворцов wrote:
> 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:

This kind of questions usually does not attract much answers, there can
be one hundred reasons for something to hang. Wire up your debugger and
check on what it is infinitely spinning.

Sylvain

_______________________________________________
lwip-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/lwip-users

signature.asc (188 bytes) Download Attachment