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/TM4C1290NCPDT: NDK (in TI-RTOS) works intermittently after being shutdown and restarted

Part Number: TM4C1290NCPDT

Tool/software: TI-RTOS

Hi All,

We've found a bug in the NDK driver for the TM4C devices. The EMACSnow_InitDMADescriptors() function is called when the NDK is started (and also restarted). The first time is fine because the g_TxDescList and g_RxDescList are initialized. If the NDK stack is stopped and started again,  EMACSnow_InitDMADescriptors() does not re-initialize these two variables (more specifically the ulRead and ulWrite fields). This results in intermittent working of the NDK and several abnormal EMAC interrupts. The fix is easy...add the bolded lines to the below function in EMACSnow.c. Note: you can make the changes to the file in the product and then rebuild the drivers (refer to the User Guide for more details) or simply add the EMACSnow.c file to your project (and it will be picked up instead the one in the driver library).

void EMACSnow_InitDMADescriptors(void)
    int32_t i;
    PBM_Handle hPkt;

    g_TxDescList.ulRead = 0;
    g_TxDescList.ulWrite = 0;
    g_RxDescList.ulRead = 0;
    g_RxDescList.ulWrite = 0;