Part Number: TM4C1294NCPDT
I have the following setup: ccs 6.1.2, TIRTOS 2.16.0.08, compiler 5.2.7, XDC 3.31.1333, TM4C1294NCPDT
I have project that is doing what I need and working wee with one exception.
I using the network stack built in the tool chain and the board can ping, use sockets etc.
* If I boot up from power off, everything works as expected, it pings and the sockets work etc.
* if I soft reset using ROM_SysCtlReset() everything works as expected, it pings and the sockets work etc.
* If I connect a JTAG probe probe and use the debugger everything works as expected, it pings and the sockets work etc.
* if I use ROM_UpdateEMAC() to jump back to boot code and do a DFU / fimware update using bootP, the new firmware runs but the board does not ping and the sockets don't work. If I reset the board, the network works again so I know the firmware that is put in flash using the bootP is valid firmware.
I did try using the SysCtlResetCauseGet() to get the reset reason and I noticed after using ROM_UpdateEMAC() and bootP, this is the only case where there is no reset reason bit set so just to try something, if there is no reason bit set, I called the function ROM_SysCtlReset() and the Ethernet always worked after that. I do not think this is any solution I would keep long term but it's a interesting experiment.
The real question is what could I be missing that is causing this? I'm thinking that the boot code / bootP is changing some default setting in the CPU that my code is not setting and this is the reason the CPU needs to be reset to get the network working,
Any advice and what I am missing?
Thanks,
Doug