Just want to check a fundamental thing,
If there is no free RTOS API used in the interrupt handler, the interrupt handler is always invoked when a new data is arrived, and what is blocking and why the interrupt handler is not getting invoked from 2nd instance onwards, even though there is new data arrived.
Even I wondered whether free rtos is disabling the usart interrupt. But I did some analysis.
As of now I set the USART interrupt priority as 3 (which is mapped to 0x60) (cortex-M stores priority in top bits from 5 to 7 => So the range of values are, 0x00, 0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0, 0xE0), and I even checked the assembly level implementation in free rtos in this function,
uint32_t ulSetInterruptMask( void )
there is a comment says “Disable interrupts upto configMAX_SYSCALL_INTERRUPT_PRIORITY.”
Current value of “configMAX_SYSCALL_INTERRUPT_PRIORITY” is 64 (in hex it is 0x40)
So the USART interrupt is not disabled in free rtos. The question is, why the usart interrupt handler is not called 2nd time onwards?