I had a look on APIs to use UART in Zephyr in the link https://docs.zephyrproject.org/latest/reference/peripherals/uart.html#uart-interrupt-api. There are three types: Poll, Interrupt and Asynchronous using DMA. 1. In what situation which mode is prefrerd. 2. May, some one give an example of each? 3. Is it mondatory to use Semphore in Asynchronous mode ?