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.

TM4C129ENCPDT: RTOS/NDK: Fault in ICMPv6 Receive

Part Number: TM4C129ENCPDT

Hello,

I am using the NDK library to receive and transmit TCP data on an IPv6 socket over the link local interface. This works well and I am not running into any issues.

However, it appears that when the Tiva receives a network routable IPv6 address (prefix 20XX) it fails within approximately 10 minutes.

The address is being delegated to the Tivas through a SLAAC server running on a local router.

 

The following is the HWI fault trace when I encounter the issue:

"Decoded exception": {
			"Decoded": "Hard Fault: FORCED: BUSFAULT: IMPRECISERR"
		},
		"Exception context": {
			"$addr": "0x20030680",
			"$type": "ti.sysbios.family.arm.m3.Hwi.ExcContext",
			"threadType": {},
			"threadHandle": "0x2003b520",
			"threadStack": "0x2002fdf8",
			"threadStackSize": "3072",
			"r0": "0x0",
			"r1": "0x86",
			"r2": "0x1",
			"r3": "0x0",
			"r4": "0x0",
			"r5": "0x0",
			"r6": "0x86",
			"r7": "0x0",
			"r8": "0x2002a936",
			"r9": "0x20038e5c",
			"r10": "0x2002d42c",
			"r11": "0x0",
			"r12": "0x0",
			"sp": "0x20030758",
			"lr": "0x63d9b",
			"pc": "0x68b5c",
			"psr": "0x8100f000",
			"ICSR": "0x803",
			"MMFSR": "0x0",
			"BFSR": "0x4",
			"UFSR": "0x0",
			"HFSR": "0x40000000",
			"DFSR": "0x1",
			"MMAR": "0xe000ed34",
			"BFAR": "0xe000ed38",
			"AFSR": "0x0"
		},
		"Exception call stack": {
			"0    LLI6IsRouterStatMachine at lli6.c:217 :": "PC=0x00068B5C",
			"1    LLI6Update at lli6.c:458 :": "PC=0x00063D9A",
			"2    Rt6Update at route6.c:1215 :": "PC=0x00068BDA",
			"3    ICMPv6RecvRA at icmpv6_ndisc.c:894 :": "PC=0x0004D08E",
			"4    ICMPv6RxPacket at icmpv6in.c:585 :": "PC=0x00052AE6",
			"5    IPv6ParseExtnHeaders at ipv6_exthdrs.c:430 :": "PC=0x0005CAC2",
			"6    IPv6RxPacket at ipv6in.c:163 :": "PC=0x00059E9A",
			"7    NIMUReceivePacket at nimu.c:304 :": "PC=0x0005AF20",
			"8    EMACSnow_pkt_service at EMACSnow.c:683 :": "PC=0x0003F268",
			"9    NIMUPacketService at nimu.c:169 :": "PC=0x00068DDE",
			"10    NetScheduler at netctrl.c:429 :": "PC=0x000594C6",
			"11    NC_NetStart at netctrl.c:211 :": "PC=0x00054142",
			"12    ti_ndk_config_Global_stackThread at iop_pem4f.c:3339 :": "PC=0x00058874",
			"13    ti_sysbios_knl_Task_exit__E at Task.c:414 :": "PC=0x0005D3E8"
		}
	}
]

I verified that all of the tasks (including the NDK tasks) are not running out of stack space.

I also have free memory available on the heap.

I updated my NDK revision to 2.25.01.11, with not resolution to the issue.

It looks like the last packet the Tiva received was an ICMPv6 type packet.

 

It appears that another forum post describes possibly the same issue:

http://e2e.ti.com/support/microcontrollers/other/f/908/t/680689

In the final post, it is mentioned that the issue may already be tracked as a bug in NDK.

 

Thank you,

Brandon Rivera