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.

有人利用single image模式调试成功IPC+NDK吗

Other Parts Discussed in Thread: SYSBIOS

我之前分别做过多核MessageQ程序和单核的NDK程序,现在想把它们放到一起来,结果出现很多错误。

为了使用NDK,所以需要较大的Heap。参考例程,我将heap的段systemHeapMaster放到DDR中

var heapMemParams = new HeapMem.Params();
heapMemParams.size = 0x3000000;
heapMemParams.sectionName = "systemHeapMaster";
Program.global.heap0 = HeapMem.create(heapMemParams);
Memory.defaultHeapInstance = Program.global.heap0;

然后参考image_proccesing,配置了余下部分(包括NDK所需要的模块)。

在main函数里动态创建了一个打印“test”的任务,在IPC成功后,启动BIOS_start(); 

结果是核1-7都成功的打印了“test”,但核0却跑飞了:

[C66xx_0] A0=0x80000d68 A1=0x0
[C66xx_0] A2=0x1 A3=0x81f4d8
[C66xx_0] A4=0x820ea0 A5=0x80c200
[C66xx_0] A6=0x0 A7=0x0
[C66xx_0] A8=0x165a0000 A9=0x2
[C66xx_0] A10=0x8000046c A11=0x3
[C66xx_0] A12=0x0 A13=0x0
[C66xx_0] A14=0x0 A15=0x0
[C66xx_0] A16=0x800017b0 A17=0x0
[C66xx_0] A18=0x80001788 A19=0x20
[C66xx_0] A20=0x6c A21=0x4c
[C66xx_0] A22=0x22810002 A23=0x0
[C66xx_0] A24=0x48000102 A25=0x2001820c
[C66xx_0] A26=0x8002d2 A27=0x4000
[C66xx_0] A28=0x580080 A29=0x0
[C66xx_0] A30=0x0 A31=0x81fee8
[C66xx_0] B0=0x819340 B1=0x0
[C66xx_0] B2=0x0 B3=0xc047ce0
[C66xx_0] B4=0xc B5=0x1
[C66xx_0] B6=0x159 B7=0x1
[C66xx_0] B8=0x80000568 B9=0x0
[C66xx_0] B10=0x3 B11=0x0
[C66xx_0] B12=0x0 B13=0x0
[C66xx_0] B14=0x824200 B15=0x80000d98
[C66xx_0] B16=0x818460 B17=0x1
[C66xx_0] B18=0x800004d8 B19=0xc
[C66xx_0] B20=0x8000046c B21=0x3
[C66xx_0] B22=0x3 B23=0x0
[C66xx_0] B24=0x5100213 B25=0x8830
[C66xx_0] B26=0x84400 B27=0x50000100
[C66xx_0] B28=0x208a001 B29=0x710a2080
[C66xx_0] B30=0xffffffff B31=0x8193c4
[C66xx_0] NTSR=0x1000e
[C66xx_0] ITSR=0xf
[C66xx_0] IRP=0xc04569a
[C66xx_0] SSR=0x0
[C66xx_0] AMR=0x0
[C66xx_0] RILC=0x0
[C66xx_0] ILC=0x0
[C66xx_0] Exception at 0xc
[C66xx_0] EFR=0x2 NRP=0xc
[C66xx_0] Internal exception: IERR=0x1
[C66xx_0] Instruction fetch exception
[C66xx_0] ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x0c04569a, sp = 0x80000d98.
[C66xx_0] To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
[C66xx_0] xdc.runtime.Error.raise: terminating execution

如果去掉test任务,用单核来执行以太网任务模块,这样的配置倒是没问题。

但是我使heapMemParams.size = 0x8000;将systemHeapMaster放置在L2当中,程序可以正常运行。每个核都打印“test”。

不过当我将以太网模块任务加入进来的时候,很显然0x8000的heap不够用,L2的空间也不能完全用来做heap。

项目十分紧急,求各位大神指点,最好能借cfg文件参考一番,多谢。

caf5.rar