AnsweredAssumed Answered

LPuart interrupt driver example doesnt work when implemented as a task in freertos.

Question asked by fayiz k on Jun 25, 2018
Latest reply on Jun 25, 2018 by fayiz k

Hi,

 

I ported the lpuart interrupt code under driver examples of sdk 2.3.1 for imxrt and ran in imxrt evaluation board with A0 revision.

When i try to run that it takes user input and echoes back properly provided it is entered one by one.

When i copy paste a lot of characters in to the terminal it stops and doesn't take any input from that moment.

Seems like the interrupt doesn't trigger from that moment.

 

My buffer is more than the required size.This code works fine when run as bare metal code. What am i doing wrong here.

I tried running the code

I tried using freertos api for task yield and  also without it taking care the interrupt priority for freertos. But that didnt help.

Did anyone else face this issue?

 

Uart interrupt Interrupt priority is set as 5

 

The below is my FreeRTOSconfig.h macros

 

#define configPRIO_BITS 4 /* 15 priority levels */

#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY ((1U << (configPRIO_BITS)) - 1)
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2
#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))

#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))

 

Thanks

Fayiz

Outcomes