This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/TM4C1294NCPDT: Exception Occurred problem for ndk_2_25_00_09

Part Number: TM4C1294NCPDT
Other Parts Discussed in Thread: EK-TM4C1294XL

Tool/software: TI-RTOS

Hi,
   I am using EK-TM4C1294XL board and I am trying to run the project tcpEchoIPv6_EK_TM4C1294XL_TI_TivaTM4C1294NCPDT which is imported directly from the original document. To set the static ipv4 address, I added the following codes to the tcpEchoIPv6.cfg file.
Ip.autoIp = false;

Ip.address = "192.168.0.55";

Ip.mask = "255.255.255.255";

Ip.gatewayIpAddr = "192.168.0.1";

 

When build the project and try to run it in my board, I got the Exception occured problem.

Additional information:
1. The NDK version is 2_25_00_09 and the tirtos version is tirtos_tivac_2_16_01_14.
2. I have a router to provide the Stateless Auto IPv6 Address Configuration to the board.When the router send out the Router Advertisement packet, the Exception occured. It seems that the something wrong with the network stack when it receive and process the RA packet.

I got the console output as below:
Starting the TCP Echo IPv6 example
System provider is set to SysMin. Halt the target to view any SysMin contents in ROV.
Network Added: If-1:192.168.0.55
Address: fe80::21a:b6ff:fe02:c23b on device 1 is UNIQUE
Address: 2555:530:5a::21a:b6ff:fe02:c23b on device 1 is UNIQUE   ---> this address is set by the net stack according the RA packet sent by my router.
FSR = 0x0000
HFSR = 0x40000000
DFSR = 0x0000000b
MMAR = 0xe000ed34
BFAR = 0xe000ed38
AFSR = 0x00000000
Terminating execution...

Can anyone help solve this? Thanks a lot.

  • Hong,

    I added those lines to the bottom of the example's .cfg file. I did not get an exception. Did you make any other changes to the example?

    You can look in Tools->ROV->Hwi->Exceptions to get more information on the exception. Do you have a WireShark trace of the session?

    Todd
  • Hi Todd,
    Thanks for your reply. I don't make any other changes to the example. If I don't use the router (acctually I use the Linux run on a PC to simulate the router ), and if the board don't receive the Router Advertisement packet, there is no exception.
    I did use wireshark to capture the packet, can you tell me how to upload the snapshoot of the capture packet?
    Thanks a lot.
  • Hi Todd,
    I've checked the packet captured by wireshark and I didn't find anything special. Just normal Router Advertisement packet from router.
    You can see from the console information that the ipv6 address 2555:530:5a::21a:b6ff:fe02:c23b was got by the board, but after that the whole program collapsed.
    Can you test it in your board?
    Thanks a lot.

    Best Regards,
    Hong
  • Hi Todd,

    The snapshoot of the ROV result and the wireshark result are uploaded below.

    The selected packet (with the sequence number 226 ) is sent out by the board.

    Thanks a lot.

  • Hi Todd,

    Would you tell me whether you see my reply or not?

    Thanks a lot.

    Hong

  • Sorry lots of forum posts this week.

    We have a known issue with RA packets in the NDK. I'm trying to figure out if it has been fixed, is there a work-around, etc.

    Todd
  • Hi Todd,
    Thanks for your reply.
    I used ndk_2_22_03_20 two years ago, and it's ok when received RA packet.
    But now I want to use ndk in TM4C129, and the ndk_2_22_03_20 seems don't support TM4C129 very well.

    Hong
  • The issue was introduced with some IPv6 work. The issue has not been fixed.

    Can you try this work-around in the <NDK_install_dir>\packages\ti\ndk\stack\route6\route6.c file? The changes are in bold at the end. Basically added a NULL check. The instructions for rebuilding the NDK are in the TI-RTOS User Guide. You can just rebuild the NDK (not the whole product).

    void Rt6Update (HANDLE hRoute, UINT32 RxPacketType, UINT8* mac_address, UINT32 Flags, UINT32 Lifetime)

    {

       RT6_ENTRY* ptr_rt6;

       /* Get the routing entry. */

       ptr_rt6 = (RT6_ENTRY *)hRoute;

       if (ptr_rt6 == NULL)

           return;

       /* If we received a Router Advertisment; we need to update the routing table entry too. */

       if (RxPacketType == ICMPV6_ROUTER_ADVERTISMENT)

           ptr_rt6->dwTimeout = llTimerGetTime(0) + Lifetime;

       /* If the MAC Address is specified; and there exists an LLI6 entry update it too. */

       if (ptr_rt6->hLLI6 != NULL) {

           LLI6Update (ptr_rt6->hLLI6, mac_address, RxPacketType, Flags);

       }

       return;

    }


  • Hi Todd,
    Thanks for your reply.
    I modified the file and rebuild ndk as you instructed.
    Now there is no exception happened.
    Thanks a lot.

    Hong