Tool/software: TI-RTOS
Hi Garrett!
I need to re-open the issue related to 
The latest findings were that the "race" was between HWI and Task.
Now when I add some other functionality issue came back to the surface.
What I see / what I believe what is going on is:
NC_NetStart -> NIMUInit -> MINU_ICSS_EmacInit -> ....... ..... -> NIMU_ICSS_open() HERE IS ISSUE!
nCfg->nimuStat = (NIMU_IcssStatistics*)(mmAlloc(statsSize * numPorts));
retVal = NIMU_ICSS_interruptInit(pi);
if (retVal == 0)
{
/* Initialize packet structure for Rx */
NIMU_ICSS_packetInit(nCfg->nimuPktRx);
NIMU_ICSS_openPeripheral(pi);
pi->TxFree = 1;
EnableEMACInterrupts(pi);
}
return (retVal);
NIMU_ICSS_interruptInit() enable HWI. Rx packet buffer / pool is allocated in NIMU_ICSS_packetInit, right?
When NIMU_ICSS_interruptInit() is called, interrupt is triggered and post rxSemaphore. EmacOsRxTask then call ICSS_EmacPollPkt(). ICSS_EmacPollPkt() call -> NIMU_ICSS_interruptRx() -> NIMU_ICSS_rxServiceCheck().
In NIMU_ICSS_rxServiceCheck():
on line: 873 -> rxArgs.destAddress == 0!!!!!!
On line 874 jump on callBack -> RedRxPktGet but argument/address of destination address in NULL or some other undefined memory location, so on memcpy() it fail!
So why program fail, now I understand (Let me know if I'm wrong).
What I don't understand is why in NIMU_ICSS_open RX HWI enabled before "Initialize packet structure for Rx" function NIMU_ICSS_packetInit is called???
Function EnableEMACInterrupts is called after Rx buffer init, but how is possible that RX interrupt is allerady enabled???
Best Regards, Mare