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;
Todd