This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USING UART7 ON TM4C1294NCPTD

Hello, I need use UART 7 or 6 to communicate with other component.

I'm using TI-RTOS 2.14.04.31, on a TIVA TM4C1294NCPDT.

I based my project on 'uartecho_EK_TM4C1294XL_TI_TivaTM4C1294NCPDT' example. I made the following changes:

On EK_TM4C1294XL.c

 *  ======== EK_TM4C1294XL_initUART ========
 */
void EK_TM4C1294XL_initUART(void)
{
    /* Enable and configure the peripherals used by the uart. */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
    GPIOPinConfigure(GPIO_PA0_U0RX);
    GPIOPinConfigure(GPIO_PA1_U0TX);
    GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

    /* Enable and configure the peripherals used by the uart. */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART6);
    GPIOPinConfigure(GPIO_PP0_U6RX);
    GPIOPinConfigure(GPIO_PP1_U6TX);
    GPIOPinTypeUART(GPIO_PORTP_BASE, GPIO_PIN_0 | GPIO_PIN_1);

    /* Initialize the UART driver */
#if TI_DRIVERS_UART_DMA
    EK_TM4C1294XL_initDMA();
#endif
    UART_init();
}

/* UART configuration structure */
const UARTTiva_HWAttrs uartTivaHWAttrs[EK_TM4C1294XL_UARTCOUNT] = {
    {
        .baseAddr = UART0_BASE,
        .intNum = INT_UART0,
        .intPriority = (~0),
        .flowControl = UART_FLOWCONTROL_NONE,
        .ringBufPtr  = uartTivaRingBuffer[0],
        .ringBufSize = sizeof(uartTivaRingBuffer[0])
    },
    {
        .baseAddr = UART6_BASE,
        .intNum = INT_UART6,
        .intPriority = (~0),
        .flowControl = UART_FLOWCONTROL_NONE,
        .ringBufPtr  = uartTivaRingBuffer[1],
        .ringBufSize = sizeof(uartTivaRingBuffer[1])
    }
};

const UART_Config UART_config[] = {
    {
        .fxnTablePtr = &UARTTiva_fxnTable,
        .object = &uartTivaObjects[0],
        .hwAttrs = &uartTivaHWAttrs[0]
    },
    {
        .fxnTablePtr = &UARTTiva_fxnTable,
        .object = &uartTivaObjects[1],
        .hwAttrs = &uartTivaHWAttrs[1]
    },
    {NULL, NULL, NULL}
};
#endif /* TI_DRIVERS_UART_DMA */

on EK_TM4C1294XL.h

typedef enum EK_TM4C1294XL_UARTName {
    EK_TM4C1294XL_UART0 = 0,
	EK_TM4C1294XL_UART6,

    EK_TM4C1294XL_UARTCOUNT
} EK_TM4C1294XL_UARTName;

on Board.h

#define Board_UART6                 EK_TM4C1294XL_UART6

on uartecho.c

Void echoFxn(UArg arg0, UArg arg1)
{
    char input;
    UART_Handle uart;
    UART_Handle uartOUT;
    UART_Params uartParams;
    UART_Params uartOUTParams;
    const char echoPrompt[] = "\fEchoing characters:\r\n";

    /* Create a UART with data processing off. */
    UART_Params_init(&uartParams);
    uartParams.writeDataMode = UART_DATA_BINARY;
    uartParams.readDataMode = UART_DATA_BINARY;
    uartParams.readReturnMode = UART_RETURN_FULL;
    uartParams.readEcho = UART_ECHO_OFF;
    uartParams.baudRate = 9600;
    uart = UART_open(Board_UART6, &uartParams);

    if (uart == NULL) {
        System_abort("Error opening the UART");
    }

    /* Create a UART with data processing off. */
    UART_Params_init(&uartOUTParams);
    uartOUTParams.writeDataMode = UART_DATA_BINARY;
    uartOUTParams.readDataMode = UART_DATA_BINARY;
    uartOUTParams.readReturnMode = UART_RETURN_FULL;
    uartOUTParams.readEcho = UART_ECHO_OFF;
    uartOUTParams.baudRate = 9600;
    uartOUT = UART_open(Board_UART0, &uartOUTParams);

    if (uartOUT == NULL) {
        System_abort("Error opening the UARTOUT");
    }


    UART_write(uartOUT, echoPrompt, sizeof(echoPrompt));

    /* Loop forever echoing */
    while (1) {
        UART_read(uart, &input, 1);
        UART_write(uartOUT, &input, 1);
    }
}

Bu don't work, here is the error:

What am I forgetting?