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/TDA2P-ACD: Supporting UART4 on custom board based on TDA2PX

Part Number: TDA2P-ACD
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hello All,

We are working on TDA2Px based custom board sysbios all configuration and PSDK3.03.

In the board UART4 is used for interfacing  with one of the sensor. To initialize UART4 instance following changes are done in the PSDK code base

1. Added UART4 instance in bsp_boardTda2pxDefault.h as follows

{                                                                    \
            BSP_DRV_ID_UART,                               /* devDrvId */    \
            BSP_DEVICE_UART_INST_ID_3,                     /* instId */      \
            NULL,                                          /* i2cInstId */   \
            NULL,                                          /* i2cAddr */     \
            NULL,                                          /* drvId */       \
            NULL,                                          /* drvInstId */   \
            &Bsp_boardSelectDeviceTda2xx,                  /* selectDev */   \
            NULL,                                          /* resetDev */    \
            NULL,                                          /* powerOnDev */  \
        },  

2. Updated pin muxing based on the board schematic

3.In code for initializing UART4 following sequence is added (based on example ti_components/drivers/pdk_01_09_00_17/packages/ti/drv/bsp_lld/uart/examples/uart_echo)

GIO_addDevice(uartDeviceName1, (Ptr)&Uart_IOMFXNS, NULL,
                  uartDevId, (xdc_Ptr) & uartParams); where uartDeviceName1 is uart4

       Bsp_boardSetPinMux( BSP_DRV_ID_UART,BSP_DEVICE_UART_INST_ID_3,BSP_BOARD_MODE_DEFAULT);
       Bsp_boardSelectDevice(BSP_DRV_ID_UART, uartDevId);

Uart4RxHandle = GIO_create(uartDeviceName1, (UInt32)GIO_INPUT,&ioParams, &eb);

while it is executing the GIO_addDevice and pin mux call without any error, but executing GIO_create results in a crash on ipu1_0.

On debugging further, I have found that it is crashing at the point  when it tries to execute UARTEnhanFuncEnable() for SOC_UART4_BASE (0x4806E000) giving hard fault error.

As per my understanding this type of error comes when IPU tries to access non mapped memory region.

Please let me know if i am missing anything here.

regards

Hrishikesh