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.

RTOS/CC1310: UART Exception

Part Number: CC1310
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hi all,

I got an execution error on the UARTCC26XX Module in the Simple Link V1.60. Is this a know issue?



I also inserted the UARTCC26XX Files from the SimpleLink 2.30, but there I got other troubles.
Please help.

BR Noge

  • Hi Noge,

    Could you please elaborate on the setup? What do you do in order to trigger the hard fault? Is it consistent?
  • Hi Severin,
    actually I have a firmware with many module and functions. It is based on the SimpleLink SDK V1.60. It is a battery powered device so we go into sleep mode. It may wake up via clocks or a pin interrupt and we use the UART to communicate whith a host processor. One module we baught from a third party company is based on the SDK V1.60 an is not compatible with the New SDKs V2.xx. I know, there has been Troubles with the UART Module V1.xx in the call back mode, which we use. I added the new UARTCC26XX.c and UARTCC26XX.h to my project, there I get the troubles that the Firmware hanging in the RTOS, usually it stays in the function "ti_sysbios_knl_Clock_walkQueueDynamic_E() and do not return from this function.

    We use SPI, DC and clock HWI / SWI  too.

    What I can say is there are depency whith go sleeping - wake up and interrupts.

    BR noge

  • I need you to describe what procedure is causing the initial issue. Are you waking up from standby and communication with the host? Or is it some other corner case that is happening?

    Also, what third party module are we talking about?
  • Hi Severin,
    Sorry for the delay, To your questions. The third party module is a custom module programmed for us and here we do not have the source. This is sometimes more difficult for debugging.

    I do not know,what procedure causes the initial issue, if I know this it would be more easy to find. So let me do some explanations:
    We go sleeping in a deep mode, there we need around 30nA with our module. There is a cyclic wake up using the clock module and there is a also the possibility to wake up via a close the ADC, SPI UART and we config the Pin interrupt and the clock for waking up. After wake up, we do the other way round Init the ADC, SPI, UART ...

    Here you can see how we use the UART.:

    void InitUart(void)

    {

    /*******************************************************************

    * Using the

    * e UART

    ******************************************************************/

    if (!UartHandle)

    {

    fUartReadEnable = true;

    UART_init();

    UART_Params_init(&uart_params);

    uart_params.baudRate = 57600;

    uart_params.writeDataMode = UART_DATA_BINARY;

    uart_params.readDataMode = UART_DATA_BINARY;

    uart_params.readMode = UART_MODE_CALLBACK;

    uart_params.writeMode = UART_MODE_CALLBACK;

    uart_params.readReturnMode = UART_RETURN_FULL;

    uart_params.readEcho = UART_ECHO_OFF;

    uart_params.dataLength = UART_LEN_8;

    uart_params.parityType = UART_PAR_NONE;

    uart_params.stopBits = UART_STOP_ONE;

    uart_params.readCallback = readCallbackFN;

    uart_params.writeCallback = writeCallbackFN;

    UartHandle = UART_open(HWDEF_UART0, &uart_params);

    //UartHandle = UART_open(0, &params);

    UART_control(UartHandle, UARTCC26XX_CMD_RETURN_PARTIAL_ENABLE, NULL);

    if (!UartHandle)

    {

    System_abort("UART did not open");

    }

    UART_read(UartHandle, ui8RxData, SIZE_OF_UART_RX_BUFFER);

    }

    }

    BR Noge

  • You say you tried to use the UARTCC26XX Files from the SimpleLink 2.30, but you got other problems. Could you elaborate what problems you saw?
  • Hi Severin,
    with my firmware, I toggle between two situations and I suggest, but do not know, that there is a "connection" with the UART module.

    One situation is a hwi exception: see abouve. the other situation is hanging in the Clock_walkQueueDynamic(....) function.
    I had a thread tith M-W but up to know, we were not able to find the bug.

    here a screenshot:

    Any advice?
    BR Noge

  • Hi Severin,
    any update?
    BR Noge
  • Hi Noge,

    Sorry for the delayed response.

    Your initial issue is based from a third party module, which I cannot say what the problem is. The UART driver from the 1.60 SDK does have known issues, but whether this is one of them is hard to say. I would recommend to contact the vendor that supplied you that module.

    Regarding the other issue you experienced with by replacing the previous UART driver with an updated one from the 2.30 SDK, I need to know more of your system. Are you able to create a minimal reproducible example? And, are you using a custom board or some of our development boards?
  • Hi Severin,

    I think a minimal project will be not be easy, because of the specific Hardware, The firmware will only run on our custom hardware, it will not run ion a board. Our supplier will support us with a new lib based on Simplelimk V2.40 next week. so hopefully this will help us.

    What additional possibilitys for error debugging logging do I have. I will add my cfg file. do you have any additional tips or information?

    BR Noge

    RF_Mod_SHC.cfg

  • Hi Noge,

    Do you have any updates on the new firmware? As for the cfg file, you could possibly try to play around with the UIA and see if it helps you in any way. To use this, have a look at chapter 9.4 in the SYS/BIOS User's guide:

    www.ti.com/.../spruex3