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.

C6678 取指冲突

Other Parts Discussed in Thread: SYSBIOS

您好:    大致是下面的情况:

void taskfunc2()

{

//执行一些线程初始化之后,堵塞这个线程

}

void taskfunc1()

{

          if(core0) {

                           task_create();//这里创建一个线程,优先级高于当前,就叫taskfunc2()吧

         } else{

                            task_create();//这里创建一个线程,优先级高于当前,就叫taskfunc2()吧  }

}

所有段都放在DDR3里面,8核进入taskfunc1()线程函数,然后通过Notify机制,8个核依次创建taskfunc2()线程,但是发现core0能够创建taskfunc2()并立即进入完成初始化返回,但是其他核就会返回如下的错误,请问这是什么原因?

A0=0x0 A1=0x0
A2=0x1 A3=0x880b790c
A4=0x800004e8 A5=0x100000
A6=0x0 A7=0x88130e7c
A8=0x88130e74 A9=0x0
A10=0x0 A11=0x80100aa8
A12=0x0 A13=0x0
A14=0x0 A15=0x0
A16=0x801002e0 A17=0x20
A18=0x801002e0 A19=0x0
A20=0x0 A21=0x0
A22=0x800000 A23=0x8
A24=0x0 A25=0x80802008
A26=0x420800 A27=0x420
A28=0x80000000 A29=0x20
A30=0xffffffff A31=0x1
B0=0x801004f0 B1=0x0
B2=0x880fa760 B3=0x880b7908
B4=0x1 B5=0x80101350
B6=0x1ad B7=0x88131fa0
B8=0x80100b00 B9=0x3a
B10=0x0 B11=0x0
B12=0x0 B13=0x0
B14=0x88134358 B15=0x80101318
B16=0x30 B17=0x8010050c
B18=0x4c0000 B19=0x100000
B20=0x2000801 B21=0x200482
B22=0xf B23=0x0
B24=0x20001200 B25=0x80002053
B26=0x1001 B27=0x24200
B28=0x220000 B29=0x420080c8
B30=0x70 B31=0x88130e78
NTSR=0x1020f
ITSR=0x20d
IRP=0x88117b7a
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 256: E_exceptionMax: pc = 0x00000000, sp = 0x80101318.
xdc.runtime.Error.raise: terminating execution
  • 所有段放在DDR里包括stack段吗?多个core上的task共享一份stack是有问题的,试试把每个核各自段堆栈放在LL2里。

  • 您好:

    因为8个核跑的是同一个APP,heap肯定是要共享的,只能放在DDR3里面了。我想给每个核设置一个stack,然后分开放,但是我不太会,请指教

    还有我有疑问:1. Program模块里面的heap,stack只的是什么?

                                2. Program.heap设置的大小和BIOS.heapsize设置的大小,两者是不是一样的,都是指系统的堆大小?

                                3. Program.stack设置的大小是不是系统的栈大小?线程栈是不是在系统栈里面分配?要是每个核都用自己的stack,还有必要设置系统stack吗?

    谢谢!