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.

BIOS_Abort on C6655 DSP

Other Parts Discussed in Thread: TMS320C6655

Hi 

I'm using SYS/BIOS 6.37.01.24 GA with the TMS320C6655 DSP.

I have have  implemented a Bios_Abort  and register it as a hook functio in my app.cfg (Exception.exceptionHook = "&BIOS_Abort";)

void BIOS_Abort(void)
{
Exception_Status status;

Exception_getLastStatus(&status);

System_sprintf(abortBuffer, "BIOS_Abort:\n");
System_sprintf(tmpBuffer," efr=0x%x\n", status.efr);
strcat(abortBuffer, tmpBuffer);
System_sprintf(tmpBuffer," nrp=0x%x\n", status.nrp);
strcat(abortBuffer, tmpBuffer);
System_sprintf(tmpBuffer," ntsr=0x%x\n", status.ntsr);
strcat(abortBuffer, tmpBuffer);
System_sprintf(tmpBuffer," ierr=0x%x\n", status.ierr);
strcat(abortBuffer, tmpBuffer);

platform_write(abortBuffer);

while (1);
}

Then I get an exception and this is the output window:

>>>>>

BIOS_Abort:

efr=0x2
nrp=0x80094a18
ntsr=0x1820f
ierr=0x0

<<<<<<<<

What does it mean with these codes? 

How can I debug further with these codes?

BR

Tam Tran

Vestas Wind System

  • The efr value of 2 indicates this was an internal exception. But the ierr of 0x0 gives no further information about the type of internal error.

    The nrp value is the address of the instruction that was being fetched at the time the exception occurred.

    Due to the C6x internal instruction pipeline, the instruction the nrp points to is probably a few instructions AFTER the instruction that caused the exception. A study of the .map file and disassembled .out file should give you a pretty good idea where the problem is.

    Alan

  • Hi Alan

    I've gotten again an exception today. This time on my emulator and then I have some more information. Can you please give me a hint about what do I have to look for or maybe point out what the problem is?

    - The output on CCS debug:

    [C66xx_0]

    !!!! Init EMIF done

     

    !!!! Init GPIO done

    A0=0x0 A1=0x1

    A2=0x1 A3=0x200

    A4=0x800ba120 A5=0x860

    A6=0x7 A7=0x1800080

    A8=0x0 A9=0x0

    A10=0x0 A11=0x80015ccc

    A12=0x801a34 A13=0x800ad000

    A14=0x1 A15=0x1

    A16=0x8006b2c8 A17=0x0

    A18=0x8006b2c0 A19=0x0

    A20=0x0 A21=0xfe7013b

    A22=0x7fddd8f A23=0xbff7ffd6

    A24=0xfbdef34f A25=0xff7f9ffb

    A26=0x0 A27=0xd7ff7fbf

    A28=0x800ba188 A29=0x23

    A30=0x1 A31=0x2740000

    B0=0x1 B1=0x0

    B2=0x0 B3=0x80015720

    B4=0x240 B5=0x0

    B6=0x240 B7=0x800bb5a0

    B8=0x800c3560 B9=0x0

    B10=0x240 B11=0x8012a108

    B12=0x7c000428 B13=0x10801a14

    B14=0x800000 B15=0x807f28

    B16=0x800ad000 B17=0x800cc8b8

    B18=0x80000 B19=0x808bf0

    B20=0x40 B21=0x1

    B22=0x0 B23=0x40000000

    B24=0x808bf4 B25=0x4

    B26=0x800ba19c B27=0x620

    B28=0x1 B29=0x1b60

    B30=0x7 B31=0x2740000

    NTSR=0x1000c

    ITSR=0x40c

    IRP=0x0

    SSR=0x0

    AMR=0x0

    RILC=0x0

    ILC=0x0

    Exception at 0x8002f90a

    EFR=0x40000002 NRP=0x8002f90a

    BIOS_Abort:

      efr=0x40000002

      nrp=0x8002f90a

      ntsr=0x1000c

      ierr=0x0

    - The disassambly around the addr. 0x8002f90a:

    8002f8a0: 027FBAAA MVK.S2 0xffffff75,B4
    8002f8a4: 9CC5 STW.D2T2 B4,*B15[4]
    $C$L52:
    8002f8a6: 9CCD LDW.D2T2 *B15[4],B4
    8002f8a8: 6C6E NOP 4
    8002f8aa: 0227 CMPEQ.L2 0,B4,B0
    8002f8ac: 3044A120 [!B0] BNOP.S1 $C$L53 (PC+136 = 0x8002f928),5
    8002f8b0: 02509028 MVK.S1 0xffffa120,A4
    8002f8b4: 024005E9 MVKH.S1 0x800b0000,A4
    8002f8b8: 7346 || MV.L1X B6,A3
    8002f8ba: 643C LDW.D1T1 *A4[A3],A3
    8002f8bc: E8C00000 .fphead n, l, W, BU, nobr, nosat, 1000110b
    8002f8c0: 0FBCE2E4 LDW.D2T1 *+B15[7],A31
    8002f8c4: 0201002A MVK.S2 0x0200,B4
    8002f8c8: 00002000 NOP 2
    8002f8cc: 018CB2F8 SUB.L1X B5,A3,A3
    8002f8d0: 01FC7C40 ADDAW.D1 A31,A3,A3
    8002f8d4: 0C6E NOP 1
    8002f8d6: 91C1 ADD.L2X B4,A3,B4
    8002f8d8: 105D LDW.D2T2 *B4[0],B5
    8002f8da: 6C6E NOP 4
    8002f8dc: EC000000 .fphead n, l, W, BU, nobr, nosat, 1100000b
    8002f8e0: 029444CA CLR.S2 B5,2,4,B5
    8002f8e4: 1055 STW.D2T2 B5,*B4[0]
    8002f8e6: 9D5D LDW.D2T2 *B15[8],B5
    8002f8e8: 0350902A MVK.S2 0xffffa120,B6
    8002f8ec: 034005EA MVKH.S2 0x800b0000,B6
    8002f8f0: 023C42E6 LDW.D2T2 *+B15[2],B4
    8002f8f4: 0FBCE2E6 LDW.D2T2 *+B15[7],B31
    8002f8f8: 0318AAE6 LDW.D2T2 *+B6[B5],B6
    8002f8fc: E0400000 .fphead n, l, W, BU, nobr, nosat, 0000010b
    8002f900: 0F3C62E6 LDW.D2T2 *+B15[3],B30
    8002f904: 01810028 MVK.S1 0x0200,A3
    8002f908: 2C6E NOP 2
    8002f90a: 8B61 SUB.L2 B4,B6,B6
    8002f90c: 02FCDC42 ADDAW.D2 B31,B6,B5
    8002f910: 0278EF5A AND.L2 7,B30,B4
    8002f914: 72C0 ADD.L1X A3,B5,A4
    8002f916: 003C LDW.D1T1 *A4[0],A3
    8002f918: 4603 SHL.S2 B4,0x2,B4
    8002f91a: 4C6E NOP 3
    8002f91c: EC800000 .fphead n, l, W, BU, nobr, nosat, 1100100b
    8002f920: 01907FF8 OR.L1X A3,B4,A3
    8002f924: 01900274 STW.D1T1 A3,*+A4[0]
    $C$L53:
    8002f928: 023C82E4 LDW.D2T1 *+B15[4],A4
    8002f92c: 00006000 NOP 4
    8002f930: 07801052 ADDK.S2 32,B15

    - Attach 4657.ConvFW_ct440_test.map.txt

    BR

    Tam Tran

    Vestas Wind System

  • Tam,

    I analyzed the exception dump output, the disassembly, and the .map file.

    The problem is not obvious after reconstructing the crime scene from the disassembly. and exception dump.

    However, EFR has the EXF bit (Bit 30) set. I believe that this indicates that an external device such as a Memory Protection Unit or DMA device has detected a memory access error of some kind.

    From the .map file, it appears that the exception occurred within the "EDMA3_DRV_setQdmaTrigWord" function. I don't know what this function is doing, but I suspect that it has somehow caused the QDMA to register an exception.

    Alan

  • Hi Alan

    I hunting a problem with out DDR3 design. We can not get closer to this problem anyway. I suggest, that we can close this thread and I'll come back later when I have a more clear question.

    Thanks anyway

    /Tam