For UART driver in TI-RTOS (TM4C1294 platform), when executing the function Semaphore_pend(), TI-RTOS will abort, why is it?
File: UARTTiva.c
int UARTTiva_write(UART_Handle handle, const void *buffer, size_t size)
{
...
/* If writeMode is blocking, block and get the state. */
if (object->state.writeMode == UART_MODE_BLOCKING) {
/* Pend on semaphore and wait for Hwi to finish. */
if (!Semaphore_pend(Semaphore_handle(&object->writeSem),
object->writeTimeout)) {
/* Semaphore timed out, make the write empty and log the write. */
UARTIntDisable(hwAttrs->baseAddr, UART_INT_TX);
UARTIntClear(hwAttrs->baseAddr, UART_INT_TX);
object->writeCount = 0;