wiki:WARPLab/Debugging

Version 8 (modified by murphpo, 11 years ago) (diff)

--

WARPLab 7: Debugging Errors

This page shows various common error messages when using WARPLab 7 and offers suggestions on resolving the problem.


Error using wl_transport_eth_udp_pnet/send (line 228)
maximum number of retransmissions met without reply from node

Error in wl_node/sendCmd (line 677)
            resp = obj.transport.send(cmd.serialize());

Error in wl_node/procCmd (line 644)
                    node.sendCmd(myCmd);

Error in wl_node/wl_nodeCmd (line 310)
                out(n) = currNode.procCmd(n, currNode, varargin{:});

Error in wl_node/applyConfiguration (line 160)
            obj.wl_nodeCmd('initialize');

Error in wl_initNodes (line 106)
        currNode.applyConfiguration(nodeIDs(n));

This error indicates that a WARP node didn't respond to repeated communication attempts from the wl_initNodes script.

Things to check:

  • Did all WARP nodes boot successfully? On each node a green LED will blink while waiting for the Ethernet link, then all LEDs will turn off and the hex display will show the node's IP address suffix.
  • Did you specify an invalid number of nodes or invalid node IDs in the arguments to wl_initNodes?
  • Does each WARP node have a unique ID? In the reference design IDs are assigned by setting the user DIP switch on the WARP node.
  • Are all WARP nodes connected to a 1Gb Ethernet switch?

Debugging steps: To isolate which node is failing to communicate, you can use the optional wl_initNodes syntax to set node IDs explicitly:

wl_initNodes(1, 0); %initialize one node with ID 0
wl_initNodes(1, 1); %initialize one node with ID 1
wl_initNodes(1, 2); %initialize one node with ID 2
%continue until a node fails to initialize

Error using wl_initNodes (line 154)
Broadcast triggers are not working. Please verify your ARP table has an entry for the broadcast
address on your WARPLab subnet

This error is printed by wl_initNodes when it is able to communicate with individual nodes, but nodes failed to receive a trigger packet.

Things to check:

  • Are all WARP nodes and the host PC on a common Ethernet switch?
  • Is the host PC NIC IP address in the same subnet as the WARP nodes (10.0.0.x by default)?

Debug steps: some PCs require a manual ARP table entry to allow broadcast IP packets. On Windows, open a command prompt as an admin user and run arp -s 10.0.0.255 ff-ff-ff-ff-ff-ff. Run arp -a to confirm the new entry was accepted. The output should look like:

Interface: 10.0.0.250 --- 0xd
  Internet Address    Physical Address     Type
  10.0.0.255          ff-ff-ff-ff-ff-ff    Static

If you make changes to the WARPLab software project, you may see this error printed via the UART:

*** ERROR in RX DMA transfer: 0x400
*** Resetting DMA

This error is caused by the Ethernet DMA being unable to access the network packet buffers in the C code. This is due to the linker script assigning code data sections to the DLMB (data local memory bus). The LMB memories are not accessible to the AXI interconnect where the DMA is attached.

To resolve this error update your linker script to assign data sections to a memory area accessible by the AXI interconnect. The axi_bram (listed as axi_bram_0_S_AXI_BASEADDR in the current design) is a good choice.