将C6678的前四个核进行同步,使用的是IPC_start函数
[C66xx_1] A0=0x0 A1=0x0
A2=0x0 A3=0x0
A4=0x0 A5=0x1
A6=0x19d A7=0x0
A8=0x800003c0 A9=0x180
A10=0xfffffffc A11=0x0
A12=0x80000040 A13=0x8068c878
A14=0x0 A15=0x4
A16=0xc002954 A17=0x0
A18=0xc002934 A19=0x10
A20=0x91109020 A21=0x4dc6d424
A22=0xa490084 A23=0x16d00104
A24=0x20984191 A25=0xd599814
A26=0xe40ab261 A27=0x98021004
A28=0x35051140 A29=0x10
A30=0x7f A31=0xc002a80
B0=0x1 B1=0x0
B2=0x0 B3=0x8061d528
B4=0x4 B5=0x80687ce6
B6=0x12370010 B7=0x80687f14
B8=0x1000 B9=0x8068b008
B10=0x90 B11=0x1
B12=0x4 B13=0x8066d960
B14=0x8068e038 B15=0x85b4f8
B16=0x0 B17=0x85b588
B18=0xff B19=0x20
B20=0x20 B21=0x84800cb1
B22=0x6c538052 B23=0x1a87a006
B24=0xa2004140 B25=0x19c86012
B26=0x90225609 B27=0x84106420
B28=0xb40501d6 B29=0xf2c08b48
B30=0xffffffff B31=0xc000090
NTSR=0x1000c
ITSR=0x0
IRP=0x0
SSR=0x0
AMR=0x0
RILC=0x0
ILC=0x0
Exception at 0x0
EFR=0x2 NRP=0x0
Internal exception: IERR=0x1
Instruction fetch exception
ti.sysbios.family.c64p.Exception: line 255: E_exceptionMin: pc = 0x00000000, sp = 0x0085b4f8.
To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
xdc.runtime.Error.raise: terminating execution
从注释信息来看,这是可能是代码被改写所致,希望大家帮忙看看,有什么好的方法解决这个问题,谢谢
Gangping Li:
map文件如下:MEMORY CONFIGURATION
name origin length used unused attr fill———————- ——– ——— ——– ——– —- ——– L2SRAM 00800000 00080000 0005bb40 000244c0 RW X MSMCSRAM 0c000000 00400000 00400000 00000000 RW X DDR3 80000000 20000000 0068faa6 1f97055a RWIX
SEGMENT ALLOCATION MAP
run origin load origin length init length attrs members———- ———– ———- ———– —– ——-00800000 00800000 0005b788 00000000 rw- 00800000 00800000 00052b00 00000000 rw- .far:NDK_PACKETMEM 00852b00 00852b00 00004000 00000000 rw- .resmgr_memregion 00856b00 00856b00 00002800 00000000 rw- .far:taskStackSection 00859300 00859300 00001488 00000000 rw- .resmgr_pa 0085a788 0085a788 00001000 00000000 rw- .stack0085b800 0085b800 00000318 00000318 rw- 0085b800 0085b800 00000318 00000318 rw- .nimu_eth_ll20085bb20 0085bb20 000000a0 00000000 rw- 0085bb20 0085bb20 000000a0 00000000 rw- .resmgr_handles80000000 80000000 00600000 00000000 rw- 80000000 80000000 00600000 00000000 rw- systemHeap80600000 80600000 0006e7a0 0006e7a0 r-x 80600000 80600000 0006e7a0 0006e7a0 r-x .text8066e7a0 8066e7a0 0000dae8 00000000 rw- 8066e7a0 8066e7a0 0000dae8 00000000 rw- .far8067c290 8067c290 0000c108 0000c108 r– 8067c290 8067c290 0000c108 0000c108 r– .const806883a0 806883a0 00000060 00000060 rw- 806883a0 806883a0 00000060 00000060 rw- .fardata.180688400 80688400 00002400 00000000 rw- 80688400 80688400 00002400 00000000 rw- .qmss8068a800 8068a800 0000210a 0000210a rw- 8068a800 8068a800 0000210a 0000210a rw- .fardata.28068c910 8068c910 00001370 00001370 rw- 8068c910 8068c910 00001370 00001370 rw- platform_lib8068dc80 8068dc80 000003b8 000003b8 r– 8068dc80 8068dc80 000003b8 000003b8 r– .switch8068e038 8068e038 00000070 00000000 rw- 8068e038 8068e038 00000070 00000000 rw- .bss8068e0a8 8068e0a8 000001b5 000001b5 rw- 8068e0a8 8068e0a8 000001b5 000001b5 rw- .neardata8068e260 8068e260 0000003c 0000003c r– 8068e260 8068e260 0000003c 0000003c r– .rodata8068e300 8068e300 00000320 00000000 rw- 8068e300 8068e300 00000200 00000000 rw- .cppi 8068e500 8068e500 00000120 00000000 rw- .cio8068e800 8068e800 00001500 00001500 r-x 8068e800 8068e800 00000200 00000200 r-x .vecs 8068ea00 8068ea00 00001300 00001300 r– .cinit
Thomas Yang1:
回复 Gangping Li:
PC=0? 感觉程序跑飞了,挂上仿真器单步跟踪看看吧
Gangping Li:
回复 Thomas Yang1:
本人设置了四个核同步,经过单步调试,当三个核运行在IPC_start函数等待,这时最后一个核单步运行到IPC_start函数后,正常情况是四个经过同步一起出来,再执行下一步。而现在四个核真正运行到IPC_start函数时,除了上图所示的情况。(本次做的是将NDK的UDP例程与MessageQ进行融合)
Thomas Yang1:
回复 Gangping Li:
你先剥离下UDP和MESSGEQ,看下如果单独运行MESSAGE Q是否正常,