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.

Resource conflict exception ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0x00863620, sp = 0x80811320. xdc.runtime.Error.raise: terminating execution

Other Parts Discussed in Thread: SYSBIOS

Dear all,

We are working on C6654 DSP core using the SYS/BIOS bios_6_40_03_39 and we get the following exeption

[C66xx_0] 0x0
A22=0x0 A23=0x0
A24=0x80811b8c A25=0x0
A26=0x0 A27=0x807e8540
A28=0x807e84ac A29=0x0
A30=0x0 A31=0x78
B0=0x0 B1=0x807e4f80
B2=0x0 B3=0x807b8358
B4=0x8044f1c8 B5=0x80811318
B6=0x1e B7=0x0
B8=0x80811398 B9=0x80811230
B10=0x8040b8c8 B11=0x807b630c
B12=0x8040b900 B13=0x807af65a
B14=0x867920 B15=0x80811320
B16=0x0 B17=0x0
B18=0x0 B19=0x0
B20=0x0 B21=0x0
B22=0x0 B23=0x0
B24=0x9c B25=0xe
B26=0x0 B27=0xffffffff
B28=0x80457308 B29=0x40
B30=0x0 B31=0x8ce820
NTSR=0x1020f
ITSR=0x20d
IRP=0x8b3e7a
SSR=0x5
AMR=0x0
RILC=0x0
ILC=0x0
Exception at 0x863614
EFR=0x2 NRP=0x863614
Internal exception: IERR=0x10
Resource conflict exception
ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0x00863614, sp = 0x80811320.
xdc.runtime.Error.raise: terminating execution
0x0
A22=0x0 A23=0x0
A24=0x80811b8c A25=0x0
A26=0x0 A27=0x807e8540
A28=0x807e84ac A29=0x0
A30=0x0 A31=0x78
B0=0x0 B1=0x807e4f80
B2=0x0 B3=0x807b8358
B4=0x8044f1c8 B5=0x80811318
B6=0x1e B7=0x0
B8=0x80811398 B9=0x80811230
B10=0x8040b8c8 B11=0x807b630c
B12=0x8040b900 B13=0x807af65a
B14=0x867920 B15=0x80811320
B16=0x0 B17=0x0
B18=0x0 B19=0x0
B20=0x0 B21=0x0
B22=0x0 B23=0x0
B24=0x9c B25=0xe
B26=0x0 B27=0xffffffff
B28=0x80457308 B29=0x40
B30=0x0 B31=0x8ce820
NTSR=0x1020f
ITSR=0x20f
IRP=0x8c96f4
SSR=0x5
AMR=0x0
RILC=0x0
ILC=0x0
Exception at 0x863614
EFR=0x2 NRP=0x863614
Internal exception: IERR=0x10
Resource conflict exception
ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0x00863614, sp = 0x80811320.
xdc.runtime.Error.raise: terminating execution
x0
A24=0x80811b8c A25=0x0
A26=0x0 A27=0x807e8540
A28=0x807e84ac A29=0x0
A30=0x0 A31=0x78
B0=0x0 B1=0x807e4f80
B2=0x0 B3=0x807b8358
B4=0x8044f1c8 B5=0x80811318
B6=0x1e B7=0x0
B8=0x80811398 B9=0x80811230
B10=0x8040b8c8 B11=0x807b630c
B12=0x8040b900 B13=0x807af65a
B14=0x867920 B15=0x80811320
B16=0x0 B17=0x0
B18=0x0 B19=0x0
B20=0x0 B21=0x0
B22=0x0 B23=0x0
B24=0x9c B25=0xe
B26=0x0 B27=0xffffffff
B28=0x80457308 B29=0x40
B30=0x0 B31=0x8ce820
NTSR=0x1020f
ITSR=0x20f
IRP=0x863618
SSR=0x5
AMR=0x0
RILC=0x0
ILC=0x0
Exception at 0x863620
EFR=0x2 NRP=0x863620
Internal exception: IERR=0x18
Opcode exception
Resource conflict exception
ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0x00863620, sp = 0x80811320.
xdc.runtime.Error.raise: terminating execution

Could you please get us some hints to discover what goes wrong?

Best regards

George

  • Hi,

    It is a exception error. I think your test application try to access invalid/uninitialized memory section. Please debug your test code step by step to find out the issue.

    Thanks,
  • Ganapathi Dhandapani said:

    It is a exception error. I think your test application try to access invalid/uninitialized memory section.

    It stands right there what kind of exception it is, resource conflict one. Does this kind of exception occur upon memory reference? No[t that I know of]. Actually, can any kind of exception occur upon access to invalid/uninitialized memory section on processor in question? No[t that I know of]. Well, if privileged separation is on, exception can occur from unprivileged code upon reference to privileged section, but this normally wouldn't be classified as "invalid/uninitialized"...

    When it comes to resource conflicts first suspect is compiler. Indeed, it's compiler that lays down instructions in conflicting manner. If it's assembly routine, then first to blame is programmer [who again laid down instructions in in conflicting manner]. It might be silicon errata [that needs to be worked around by upgrading compiler and/or specifying correct silicon version at command line]. But in either case memory reference is last thing to consider. What to do? Look at assembly at denoted pc. Identify offending subroutine. Where does it come from? Is resource conflict obvious? If yes, and it's compiler generated, file bug report. If not, dig into silicon errata...

  • Dear all,

    In addition to the aforementioned issue that I fixed,
    I get a similar error but the program counter and B3 register have the very strange value 0xBEBEBEBE , that is the value that the is used for stack initialization. This problem is appeared only when I compiler my project in release mode and all are fin in release mode
    Best regards
  • Dear all,

    In addition to the aforementioned issue that I fixed,
    I get a similar error but the program counter and B3 register have the very strange value 0xBEBEBEBE , that is the value that the is used for stack initialization. This problem is appeared only when I compiler my project in release mode and all are fin in release mode.

    The 1/4 of L2 is used for the cache

    [C66xx_0] 0x80000000 A31=0x200
    B0=0x8000fb48 B1=0x1
    B2=0x8000fb48 B3=0xbebebebe
    B4=0x820260 B5=0x8bfc80
    B6=0x15000103 B7=0x15000103
    B8=0x801ae8 B9=0x8cf4d8
    B10=0x80f08000 B11=0x807ba4ec
    B12=0x90000001 B13=0x80f08040
    B14=0x864d20 B15=0x80801d38
    B16=0x7928 B17=0xacae
    B18=0xf8ae B19=0x1c24
    B20=0xffff4642 B21=0xffffcb68
    B22=0x0 B23=0xffff8864
    B24=0x9c B25=0x7256efbd
    B26=0x0 B27=0xffffffff
    B28=0x80426b08 B29=0x80427b10
    B30=0x3 B31=0x8d1540
    NTSR=0x1020f
    ITSR=0x20d
    IRP=0x8b453a
    SSR=0x0
    AMR=0x0
    RILC=0x0
    ILC=0x0
    Exception at 0xbebebec0
    EFR=0x2 NRP=0xbebebec0
    Internal exception: IERR=0x12
    Fetch packet exception
    Resource conflict exception
    ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0xbebebec0, sp = 0x80801d38.
    xdc.runtime.Error.raise: terminating execution


    Best regards

  • Dear all ,
    I fixed the issue that I described , but now I amm getting error when I call the ti_sysbios_BIOS_getThreadType.
    Please find below the full error stack and the call in assembly of this function

    008bf314: 10231C12 CALLP.S2 ti_sysbios_BIOS_getThreadType__E (PC+71904 = 0x008d0be0),B3


    C66xx_0] e8
    A24=0x8080df80 A25=0x1
    A26=0x0 A27=0x807e6f80
    A28=0x807e6eec A29=0x0
    A30=0x30 A31=0x78
    B0=0x2065 B1=0xf0000c
    B2=0x0 B3=0x8bf314
    B4=0x0 B5=0x0
    B6=0x8533a0 B7=0x4c0
    B8=0x200 B9=0x0
    B10=0xf0004c B11=0x85e080
    B12=0x18000a0 B13=0x8b1054
    B14=0x863d20 B15=0x85fec8
    B16=0xfeaf012b B17=0x26e8d3b4
    B18=0xc04026e8 B19=0x708c040
    B20=0x10dffce B21=0x15000303
    B22=0x20d B23=0xf
    B24=0x9c B25=0x7256efbd
    B26=0x0 B27=0xffffffff
    B28=0x80427308 B29=0x40
    B30=0x85b454 B31=0x817980
    NTSR=0x1020f
    ITSR=0x20d
    IRP=0x8b3f1a
    SSR=0xf
    AMR=0x0
    RILC=0x0
    ILC=0x0
    Exception at 0x807ddff0
    EFR=0x2 NRP=0x807ddff0
    Internal exception: IERR=0x8
    Opcode exception
    ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0x807ddff0, sp = 0x0085fec8.
    xdc.runtime.Error.raise: terminating execution

    Best regards
    George
  • Hi,

    I will check with Bios team and get back to you. Better to post your question on TI-RTOS Forum for fast response.
    e2e.ti.com/.../355

    Thanks,
  • Given presented evidence I'd say that there is some gross bug corrupting memory is your code. I wouldn't be surprised if all three errors are result of same underlying problem. Indeed, "resource conflict" can be result of attempt to execute something that processor could interpret as instructions sequence, but it caused resource conflict, then it tried to execute data that can't be interpreted as instructions sequence, which naturally results in "opcode exception".

    Just in case. Originally I said that resource conflict exception makes compiler bug first suspect. "First" naturally means that it's not the only one. Well, gross programming errors are naturally first suspects, but it's also naturally assumed that when somebody turns to community, sanity checks eliminating gross programming errors as prime suspect are already performed. Apparently it was wrong assumption...
  • I have exactly the same problem. When searching for this problem I was surprised to find this post from yesterday! Usually they are much older. I'm wondering if there is a bug in the latest bios. I just recently upgraded to the latest CCS, bios and xdc tools as follows:

    CCS Version 6.1.0.00104
    sys/bios 6.41.4.54
    xdctools 3.30.6.67
    biospsp 3.0.1.00

    I'm sure my application is completely different. The problem happens intermittently after a minute or so when I am sending and receiving packets over the uart every 10ms. Eventually my GIO_read fails and shortly after I get the crash with this output below. The GIO_read, uart routines work for a while, then GIO_Read fails (blocks) which fills my mailbox, then the crash. Can someone tell me how to interpret the data below? Is there a document to describe this output?

    GIO_read failed1. returned : -1ERROR : Posting to the gppdata_mailbox (cc msg) failed.

    GIO_read failed1. returned : -1ERROR : Posting to the gppdata_mailbox (cc msg) failed.
    ERROR : Posting to the gppdata_mailbox (cc msg) failed.

    GIO_read failed1. returned : -1A0=0x0 A1=0x0
    A2=0x0 A3=0xc0032bb8
    A4=0x28403e2 A5=0x3
    A6=0x1bd60 A7=0x0
    A8=0x0 A9=0x0
    A10=0x1182206c A11=0x11821fe8
    A12=0xc0032930 A13=0xc01fae58
    A14=0x11829e88 A15=0x2
    A16=0x0 A17=0x0
    A18=0x4c A19=0x20
    A20=0x0 A21=0x0
    A22=0x118 A23=0x11f00000
    A24=0x118 A25=0x118
    A26=0x11f00000 A27=0x14
    A28=0x40 A29=0xfffffea6
    A30=0x7 A31=0xfc
    B0=0xc01f4ca0 B1=0x1
    B2=0x2 B3=0xc01f4d40
    B4=0x1bd60 B5=0xf00d31f7
    B6=0xc01f4ca0 B7=0x14000302
    B8=0x1bd60 B9=0x1bd60
    B10=0x14000303 B11=0xc01ec824
    B12=0x0 B13=0x0
    B14=0x1182d254 B15=0x1182ccd0
    B16=0xbebebebe B17=0xc0034d38
    B18=0xfd01342a B19=0xffe2ff26
    B20=0x0 B21=0x69
    B22=0x20f B23=0x8
    B24=0x3 B25=0xc0034d44
    B26=0x9f8 B27=0x16
    B28=0x198 B29=0x20
    B30=0x1182a048 B31=0x1f
    NTSR=0x1020c
    ITSR=0x1182206c
    IRP=0x0
    SSR=0x8
    AMR=0xc01f1a10
    RILC=0x0
    ILC=0x0
    Exception at 0xf00d31f4
    EFR=0x2 NRP=0xf00d31f4
    Internal exception: IERR=0x10
    Resource conflict exception
    ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0xc01ec824, sp = 0x1182ccd0.
    xdc.runtime.Error.raise: terminating execution

    Thanks Rich.
  • Dear Rich,
    If I understand correctly, the problem that you have was appeared when you change the BIOS?
    In our project we use the 7.4v compiler
    Is this the correct compiler or we should use the new one

    Thanks 

    George

  • The key element in the crash output is address of execute packet that caused exception, "exception at 0xf00d31f4" in last case. Just like with any other platform you start by using this address to identify the problem subroutine. Normally you also examine disassembler output to pinpoint exact cause. Then you ask yourself how did program get there [normally by tracing stack frames back to caller, caller's called, etc.], and if the mayhem could have been caused by "off-charts" parameters passed to the function, and in such case where did they, malformed arguments, come from. But this is in "normal" cases. In abnormal cases, when memory (most likely stack) is corrupted as result of some gross programming error or misconfiguration (like insufficient stack size), it becomes virtually impossible to answer previously mentioned questions, because your program is likely to end up in completely irrelevant and unpredictable place, including portions of memory dedicated for data, rather than executable code. In such case one would expect that "illegal opcode" exception would be more common. This is why I initially said that compiler (or assembly programmer) ought to be first one(s) to blame for "resource conflict" exceptions, but it appears that it can be as common. In Rich's case the suspicion is strengthened by the fact that AMR is not zero. This register is not used by compiler and it being set, especially its reserved portion, to non-zero value suggests that processor did execute something that it shouldn't have executed.

  • Dear all,
    I have been searching this issue for 1 week and today I realized t before the program crashes, a HWI interrupt is occurred and the id of this event is 90, regarding the ROV . I was going through the documents and this is related with the MPU0 addressing violation interrupt and protection violation interrupt, table 8.34 SPRS814B. How can I discover where is this wrong memory access
    Best regards
    George