I’m new to embedded RTOS however I would like to know more and do some practicing. I extracted the relevant parts from the freeRTOSDemo and managed to create a small application running two simple tasks: one blinks a LED, the other one drives an I/O pin with a pulsetrain. This is very encouraging so now I’d like to introduce something with external interrupts. Since I’m not familiar with RTOSes I’d like to know more about the proper way of handling not deterministic external interrupts like UART RX, ext. rising/falling edge interrupts etc.
My first (and probably not the smartest) idea is to create a uart rx interrupt handler which resumes the task responsible to read out the rx fifo and after that it suspends itself. However, I don’t know how a custom interrupt handler would affect the RTOS kernel and is that allowed for a task to suspend itself. Any theoretical help would be highly appreciated.