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?