Hi,
I work with c6678. I get every workcycles data from pcie and afterwords I send them back. I have a plugin system which give all cores something to work (the result will be save in ddr3) if they are finish, they say this to mothercore via MessageQ , afterwards Edma send the result via pcie to fpga
After one successful cycles I get stack overflow. I don't allocate more memory and it are the same plugin functions.
Console output is
A0=0x0 A1=0x8
[C66xx_0] A2=0x0 A3=0x1d1a0300
[C66xx_0] A4=0x1 A5=0xf8
[C66xx_0] A6=0x800002f9 A7=0x0
[C66xx_0] A8=0xc042860 A9=0x80c780
[C66xx_0] A10=0x80c87c A11=0x80c310
[C66xx_0] A12=0x0 A13=0x0
[C66xx_0] A14=0xc04f284 A15=0x0
[C66xx_0] A16=0xc20a408 A17=0x8
[C66xx_0] A18=0x804e34 A19=0x20
[C66xx_0] A20=0x0 A21=0x0
[C66xx_0] A22=0x40500211 A23=0x6a80212c
[C66xx_0] A24=0x20000005 A25=0x141801ac
[C66xx_0] A26=0x0 A27=0x0
[C66xx_0] A28=0x400 A29=0x1
[C66xx_0] A30=0x400 A31=0xc1d2
[C66xx_0] B0=0x1 B1=0x813d38
[C66xx_0] B2=0x0 B3=0xc02b96c
[C66xx_0] B4=0x1 B5=0x15000103
[C66xx_0] B6=0x1 B7=0x1
[C66xx_0] B8=0x1 B9=0x0
[C66xx_0] B10=0x80d8c8 B11=0x0
[C66xx_0] B12=0x0 B13=0x0
[C66xx_0] B14=0x80e184 B15=0x813ce8
[C66xx_0] B16=0x0 B17=0x40000000
[C66xx_0] B18=0x80000000 B19=0x3ff001f0
[C66xx_0] B20=0x83d0b5f4 B21=0x1
[C66xx_0] B22=0xf B23=0x0
[C66xx_0] B24=0x810344 B25=0x10a000
[C66xx_0] B26=0x11ab4406 B27=0x1
[C66xx_0] B28=0x0 B29=0x144f
[C66xx_0] B30=0x3f800000 B31=0xffffffff
[C66xx_0] NTSR=0x1020d
[C66xx_0] ITSR=0x20d
[C66xx_0] IRP=0xc003e54
[C66xx_0] SSR=0x0
[C66xx_0] AMR=0x0
[C66xx_0] RILC=0x0
[C66xx_0] ILC=0x0
[C66xx_0] Exception at 0x0
[C66xx_0] EFR=0x2 NRP=0x0
[C66xx_0] Internal exception: IERR=0x1
[C66xx_0] Instruction fetch exception
[C66xx_0] ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x0c003e54, sp = 0x00813ce8.
[C66xx_0] xdc.runtime.Error.raise: terminating execution
After each Plugin the cores write back the cache to ddr3 memory. I read in some former post that I should block the idle function. I do this on all cores. The problem cause lesser than at the begin but it is not solve. (passed more than one cycle)
Task.enableIdleTask = false;
Task.allBlockedFunc = Idle.run;
I increase the stack size of my work task but doesn't solve the problem.
Program.global.workerTask = Task.create("&workerTaskFxn");
Program.global.workerTask.stackSize = 0x4000;
Program.global.workerTask.priority = 0x6;
I hope you have some further tips.
Regards