Part Number: AM3357
Hi,
I am using the NDK version 2.26.0.08 and PDK 1.0.10 to run a UDP server application on an AM3357 device. Everything works fine, but sometimes and randomly I get a Data abort exception.
Exception call stack,
0 PBM_free(void *) at pbm.c:230,PC = 0x80040D78 FP = 0x00020002
1 xdc_runtime_System_asprintf_va__E() at :0,PC = 0x00030002 FP = 0x00020002
2 do_AngelSWI(int, void *) at _kill.c:78,PC = 0x8005F308 FP = 0x00020002
3 _kill(int, int) at _kill.c:19,PC = 0x8005F308 FP = 0x00020002
Using RTOS object view, the preempted task is the main NDK task. This task is configured:
CI_IPNET NA;
CI_ROUTE RT;
/* Add IP address for interface 1 */
NA.IPAddr = htonl(tInst.u32IpAddr);
NA.IPMask = htonl(tInst.u32NetMask);
CfgAddEntry(hCfg, CFGTAG_IPNET, 1, 0, sizeof(CI_IPNET),
(UINT8 *)&NA, 0);
uint cfg;
/* Set NDK Kernel Task Priority */
cfg = 11;
CfgAddEntry(hCfg, CFGTAG_OS, CFGITEM_OS_TASKPRIKERN,
CFG_ADDMODE_UNIQUE, sizeof(uint), (uint8_t*)&cfg, 0);
/** Set NDK Kernel Task stack size */
cfg = 0x4000;
CfgAddEntry(hCfg, CFGTAG_OS, CFGITEM_OS_TASKSTKLOW,
CFG_ADDMODE_UNIQUE, sizeof(uint), (uint8_t*)&cfg, 0);
I also check the stack peak and it is 1164 (no stack overflow).
When the exception appears, if I try to read the status of the NDK on the ROV:
Target memory read failed at address: 0xffffffffffffffff, length: 4
This read is at an INVALID address according to the application's section map. The application is likely either uninitialized or corrupt.
How I could get more information? and what could cause the Data Abort on the main NDK task?
Any recommendation is appreciated.
Josep