Other Parts Discussed in Thread: HALCOGEN
Hi,
I originally posted this as a reply to a question in "https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/445955"
I am having a problem with the code getting locked up in the hkdif_rx_handler typically within the
while(hdkif_swizzle_data(curr_bd->flags_pktlen) & EMAC_BUF_DESC_SOP) section of code on the RM46L852PGET package. In Halcogen 4.05 the only drivers / pinmux enabled are MIBSPI3, MII, and SCI, with MIBSPI3NCS_1 conflict cleared and MIBSPI3NENA cleared (as opposed to CS_5).MDIO and MDCLK are checked. The VIM RAM is set as expected, and the clocks are also configured to be the same as the LWIP Ethernet Demo. The Ethernet Demo is used but modified for UDP instead of HTTP.
I am using UDP mode on LWIP, and if the host computer sends one UDP packet per cycle (i.e. the packet gets handled in a timely fashion) there are no issues and everything works, whereas if two UDP packets are sent sequentially without being processed by the ISR, the code gets stuck in the ISR, and typically at the hkdif_swizzle_data(curr_bd->flags_pktlen) & EMAC_BUF_DESC_SOP)
flags_pktlen is a big number (3942645758).
Any thoughts? It's frustrating not being able to handle the receipt of multiple UDP packets without locking up the microcontroller.
Josh Karch