Other Parts Discussed in Thread: AM3359, SYSBIOS
Hi,
We are porting over a AM3359 StarterWare project to SYS/BIOS and had it running well over the weekend with a single task. There are currently 5 hardware interrupts firing, two tasks (but only one is running.) We then added a Task_stat() call to the running task and after 10-15 seconds we get this SYS/BIOS error:
[CortxA8] Starting main loop1
Exception occurred in ThreadType_Task.
Task handle: 0x80e3eda0.
Task stack base: 0xb4e81b40.
Task stack size: 0x3fab4e81.
R0 = 0xb4e81b40 R8 = 0xffffffff
R1 = 0x3fab4e81 R9 = 0xffffffff
R2 = 0xb4e81b40 R10 = 0xffffffff
R3 = 0xb4e81b80 R11 = 0xffffffff
R4 = 0x80e42db0 R12 = 0xb4e81b40
R5 = 0xffffffff SP(R13) = 0x80e42d88
R6 = 0xffffffff LR(R14) = 0x80070a7c
R7 = 0xffffffff PC(R15) = 0x80070578
PSR = 0x8000019f
ti.sysbios.family.arm.exc.Exception: line 176: E_dataAbort: pc = 0x80070578, lr = 0x80070a7c.
xdc.runtime.Error.raise: terminating execution
The two Tasks are created like this:
/* Create two tasks that share a resource*/
Task_Params_init(&taskParams);
taskParams.priority = 4;
taskParams.stackSize = 16384;
tsk1 = Task_create (MainLoop_task, &taskParams, NULL);
Task_Params_init(&taskParams);
taskParams.priority = 4;
taskParams.stackSize = 16384;
tsk2 = Task_create (task2, &taskParams, NULL);
BIOS_start();
The current stacks are:
Heap: 131072
By looking at the PC in the error of 0x80070578, it appears to be in the Task_stat() call:
So what could the problem be?
Is it a hardware interrupt firing off causing problems or possibly some internal stack size the is to small? Our ISR routines have no special code for register saving or restores, but this was not an issue with StarterWare.
Any help is appreciated.
John C.