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.

IWRL6432BOOST: IWRL6432BOOST -- Hanging CLI

Part Number: IWRL6432BOOST
Other Parts Discussed in Thread: SYSCONFIG

This is a follow up to this question.

I was able to use SysConfig to create a new UART instance:

/*
 * UART
 */
 
 /*
 * UART
 */
#include <drivers/uart.h>

/* UART Instance Macros */
#define CONFIG_UART0 (0U)
#define CONFIG_UART1 (1U)
#define CONFIG_UART_NUM_INSTANCES (2U)
#define CONFIG_UART_NUM_DMA_INSTANCES (0U)


/* UART Driver handles */
UART_Handle gUartHandle[CONFIG_UART_NUM_INSTANCES];

/* UART Driver Parameters */
UART_Params gUartParams[CONFIG_UART_NUM_INSTANCES] =
{
    {
        .baudRate           = 115200,
        .dataLength         = UART_LEN_8,
        .stopBits           = UART_STOPBITS_1,
        .parityType         = UART_PARITY_NONE,
        .readMode           = UART_TRANSFER_MODE_BLOCKING,
        .writeMode          = UART_TRANSFER_MODE_BLOCKING,
        .readCallbackFxn    = NULL,
        .writeCallbackFxn   = NULL,
        .transferMode       = UART_CONFIG_MODE_POLLED,
        .intrNum            = 78U,
        .intrPriority       = 4U,
        .edmaInst           = 0xFFFFFFFFU,
        .rxEvtNum           = 34U,
        .txEvtNum           = 35U,
    },
    {
        .baudRate           = 115200,
        .dataLength         = UART_LEN_8,
        .stopBits           = UART_STOPBITS_1,
        .parityType         = UART_PARITY_NONE,
        .readMode           = UART_TRANSFER_MODE_BLOCKING,
        .writeMode          = UART_TRANSFER_MODE_BLOCKING,
        .readCallbackFxn    = NULL,
        .writeCallbackFxn   = NULL,
        .transferMode       = UART_CONFIG_MODE_POLLED,
        .intrNum            = 24U,
        .intrPriority       = 4U,
        .edmaInst           = 0xFFFFFFFFU,
        .rxEvtNum           = 4U,
        .txEvtNum           = 5U,
    },
};

But now the CLI hangs when the other serial port starts transmitting data. The task priorities are as follows:

#define TLV_TASK_PRI (3U)
#define CLI_TASK_PRIORITY (2U)


This priority distribution causes the CLI on ttyACM2 to hang and not accept any more commands.

When I change it to:

#define TLV_TASK_PRI (3U)
#define CLI_TASK_PRIORITY (3U)


OR


#define TLV_TASK_PRI (2U)
#define CLI_TASK_PRIORITY (3U)

both configurations then cause ttyACM3 to hang and not transmit the TLVs...

Am I missing something? Is it a baud rate issue? Or something else?

Note: I've also changed the TLV uart:

void mmwDemo_TransmitProcessedOutputTask()
{
    UART_Handle uartHandle = gMmwMssMCB.loggingUartHandle;

    ...
    
    if(gUartParams[1].baudRate == 115200)
        {
           txUartus  = header.totalPacketLen * TIME_TO_SEND_1BYTE_DATA_WITH_BAUDRATE_115200_us;
        }
#ifdef  ENABLE_UART_HIGH_BAUD_RATE_DYNAMIC_CFG
        else if(gUartParams[1].baudRate == 1250000)
        {
            txUartus = header.totalPacketLen * TIME_TO_SEND_1BYTE_DATA_WITH_BAUDRATE_1250000_us;
        }
#endif

    ...
}

void mmwave_demo(void* args)
{

    ...
    gMmwMssMCB.commandUartHandle = gUartHandle[0];
    gMmwMssMCB.loggingUartHandle = gUartHandle[1];
    ...
}