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.

Loop buffer exception

Other Parts Discussed in Thread: SYSBIOS, MATHLIB

大家好,我使用的C6748,在sysbios debug时出现了Loop buffer exception,具体信息如下:

[C674X_0] A0=0x0 A1=0x0
A2=0x2 A3=0xe9980000
A4=0x12 A5=0x38000000
A6=0xc0216650 A7=0xc0034190
A8=0x1997 A9=0xc00341a0
A10=0xcab93b29 A11=0x0
A12=0x0 A13=0xc7a9b840
A14=0x0 A15=0x46c2f480
A16=0xbfd2c380 A17=0xc104a4b3
A18=0x470028f6 A19=0xc7edc05a
A20=0x2000 A21=0xc023cfe8
A22=0x478f9998 A23=0x47d4443e
A24=0x46928c24 A25=0x46baf608
A26=0x465b8b90 A27=0xc80e3eee
A28=0xc004dfeb A29=0x3f975e41
A30=0xf A31=0x8000
B0=0x1 B1=0x0
B2=0x2 B3=0x4
B4=0x452a05e0 B5=0xc00341a8
B6=0xc74b91b2 B7=0x474c7ddc
B8=0x47a205ca B9=0xc78ce852
B10=0x382be2e2 B11=0x4799418c
B12=0x30 B13=0x1fff8
B14=0xc08c3ef0 B15=0xc087f948
B16=0xc0034198 B17=0x2000
B18=0x4000 B19=0x38000000
B20=0x3fffda92 B21=0xc02b3b4d
B22=0xbe1c2a44 B23=0xbfdee578
B24=0x46c0137a B25=0xc79cbaac
B26=0x4783c8b5 B27=0xc7be0429
B28=0xc024cfe8 B29=0x3f800000
B30=0x49ed2252 B31=0x2
NTSR=0x1400f
ITSR=0x400f
IRP=0xc08afee2
SSR=0x0
AMR=0x0
RILC=0x1000
ILC=0x665
Exception at 0xc08affa4
EFR=0x2 NRP=0xc08affa4
Internal exception: IERR=0x180
Loop buffer exception
Missed stall exception
ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0xc08affa4, sp = 0xc087f948.
xdc.runtime.Error.raise: terminating execution

请问如何定位这个问题出现在哪?同样的程序有时候debug没事,有时候就会出现Loop buffer exception,请问怎么解决

  • 在工程中添加编译选项--diable:sploop将硬件sploop disable试试。
  • 你好,请问是这样加入编译选项吗?我看提示貌似不对..会忽略加入的选项

    -mv6740 --abi=eabi -g --include_path="../code_user" --include_path="${CG_TOOL_ROOT}/include" --include_path="${COM_TI_UIA_INCLUDE_PATH}" --include_path="C:/ti/C6748_StarterWare_1_20_04_01/include" --include_path="C:/ti/C6748_StarterWare_1_20_04_01/include/hw" --include_path="C:/ti/C6748_StarterWare_1_20_04_01/include/c674x/c6748" --define=${TI_MATHLIB_C674X_SYMBOLS} --define=${TI_MAS_DSPLIB_C674X_SYMBOLS} --define=${COM_TI_UIA_SYMBOLS} --define=${BIOS_SYMBOLS} --define=c6748 --display_error_number --diag_wrap=off --diag_warning=225 --diable:sploop 

    确定之后提示invalid compiler option --diable:sploop (ignored) 

  • 抱歉,少了个s,试试--disable:sploop.
  • 嗯 会提示unrecognized flags entered:--disable:sploop
    确定是在这个地方添加的吗
  • 我右键工程属性->Build-->C6000 Complier,在summary of flags set:中最后部分添加的
  • 右键工程属性->Build-->C6000 Complier->Rumtime Model Options->Disable Software Pipelining
  • 谢谢,这样确实可以加入编译选项,但是我debug时候程序一运行到我的那个循环(循环总共23次,每次循环内部程序运行约600ms),就出现同样的问题:
    [C674X_0] A0=0x0 A1=0x0
    A2=0x2 A3=0xc8a00000
    A4=0x12 A5=0x38000000
    A6=0xc0216650 A7=0xc000b110
    A8=0x513 A9=0xc000b120
    A10=0x0 A11=0x0
    A12=0x0 A13=0x0
    A14=0x0 A15=0x0
    A16=0x0 A17=0x0
    A18=0x0 A19=0x0
    A20=0x2000 A21=0xc023aef0
    A22=0x0 A23=0x0
    A24=0x0 A25=0x0
    A26=0x0 A27=0x0
    A28=0x0 A29=0x0
    A30=0xf A31=0x8000
    B0=0x1 B1=0x0
    B2=0x2 B3=0x4
    B4=0x0 B5=0xc000b128
    B6=0x80000000 B7=0x0
    B8=0x0 B9=0x0
    B10=0x0 B11=0x0
    B12=0x30 B13=0x1fff8
    B14=0xc0a3bf30 B15=0xc09f7770
    B16=0xc000b118 B17=0x2000
    B18=0x4000 B19=0x38000000
    B20=0x0 B21=0x0
    B22=0x0 B23=0x0
    B24=0x0 B25=0x0
    B26=0x0 B27=0x0
    B28=0xc024aef0 B29=0x3f800000
    B30=0x80000000 B31=0x2
    NTSR=0x1400f
    ITSR=0x400f
    IRP=0xc0a27e42
    SSR=0x0
    AMR=0x0
    RILC=0x1000
    ILC=0x1ae9
    Exception at 0xc0a27f04
    EFR=0x2 NRP=0xc0a27f04
    Internal exception: IERR=0x180
    Loop buffer exception
    Missed stall exception
    ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0xc0a27f04, sp = 0xc09f7770.
    xdc.runtime.Error.raise: terminating execution
    编译选项如下:
    -mv6740 --abi=eabi -g --include_path="../code_user" --include_path="${CG_TOOL_ROOT}/include" --include_path="${COM_TI_UIA_INCLUDE_PATH}" --include_path="C:/ti/C6748_StarterWare_1_20_04_01/include" --include_path="C:/ti/C6748_StarterWare_1_20_04_01/include/hw" --include_path="C:/ti/C6748_StarterWare_1_20_04_01/include/c674x/c6748" --include_path="${BIOS_INCLUDE_PATH}" --include_path="C:/ti/bios_6_50_01_12" --define=${TI_MATHLIB_C674X_SYMBOLS} --define=${TI_MAS_DSPLIB_C674X_SYMBOLS} --define=${COM_TI_UIA_SYMBOLS} --define=${BIOS_SYMBOLS} --define=c6748 --display_error_number --diag_wrap=off --diag_warning=225 --disable_software_pipeline
    我又恢复到原来的设置,还是有时候运行正常,有时候会出现Loop buffer exception,出现的时刻大概 是第12次循环的时候,请问有其他的方法解决这个问题吗?这跟我system(hwi and swi)stack size 和Heap size大小有没有关系?
  • 你好 ,你是怎么解决的。我的程序现在也出现这种问题
  • 您好,我的程序也是做了相关的设置--disable:sploop和disable software pipline后还是出现相同的问题,请问你的问题最后是怎么解决的?