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.

TMS320C6202: CCS building errors

Part Number: TMS320C6202


Hi,

The customer has a project built by code composer 2 (Windows XP), with C6000 TI v4.10b compiler, for DSP TMS320C6202.
This project uses the G.728 codec.

His inquiry:
I want to import the project on code composer 8 (Linux).
I install it. I install the C6000 TI V7.3.23 compiler (C6000 TI V8.X compiler does not work with my target), and I build the project on a target "generic C62X" (there is no TMS320C62XX target).

I have several errors returned by code composer :

[E0801] Too many   block32_c6x_asm.asm   /TEST/G728/c6x   line 867   C/C   Problem
[E0801] Too many cross-path   recurs.asm   /TEST/G728/c6x   line 147   C/C   Problem
[E0801] Too many cross-path   veccopy_c6x_ASM.asm   /TEST/G728   line 105   C/C

And he also tried to build project with CCS3.1.0 on windows XP (Import of the project with the .pjt file), with C6000 TI v5.1.0 compiler, for DSP TMS320C62XX target. The error still exists.

=> "block32_c6x_asm.asm", ERROR!   at line 867: [E0801] Too many cross-path reads
                                                     (2) from register B2
1 Assembly Error, No Assembly Warnings
         ADD    2,SP,B4    ; x
    || [ B0] STH    B2,*+A12(18)      ; |181|  
    || [!B0] SUB    B2,A8,A15    ; x
    || [ B0] SUB    A8,B2,B12    ; x
    || [ B0] MV    B2,A8        ; x

=> "veccopy_c6x_ASM.asm", ERROR!   at line 105: [E0801] Too many cross-path reads
                                                     (2) from register A4
1 Assembly Error, No Assembly Warnings
         LDH    *B4[0],B7    ; 1st word
    ||     SUB    B4,2,A8    ; for last address
    ||     AND    A4,2,B2    ; is dst odd?
    ||     CMPGT    A6,0,A2    ; aone is len>0
    ||     XOR    A4,B4,B1    ; bcntl is mis aligned in bit 1
    ||     MPY    0,A3,A3    ; len def to 0

Please help to analyze these errors.

  • For the assembly instructions you show, I can confirm the old version 4.10 assembler accepts them, but the newer assemblers do not.  It is a bug that the 4.10 assembler accepts those instructions.  They are illegal.  In any one execute packet (a group of instructions in parallel) the 1X and 2X cross paths can each be used one time.  This ...

    Nancy Wang said:
             ADD    2,SP,B4    ; x
        || [ B0] STH    B2,*+A12(18)      ; |181|  
        || [!B0] SUB    B2,A8,A15    ; x
        || [ B0] SUB    A8,B2,B12    ; x
        || [ B0] MV    B2,A8        ; x

    ... uses the 1X cross path 2 times.  This ...

    Nancy Wang said:
             LDH    *B4[0],B7    ; 1st word
        ||     SUB    B4,2,A8    ; for last address
        ||     AND    A4,2,B2    ; is dst odd?
        ||     CMPGT    A6,0,A2    ; aone is len>0
        ||     XOR    A4,B4,B1    ; bcntl is mis aligned in bit 1
        ||     MPY    0,A3,A3    ; len def to 0

    ... uses the 2X cross path 2 times.

    This bug is fixed in later assemblers.

    If this code is assembled by a 4.10 assembler, and then run on a C62x system, it should not work.  If it does work, then I cannot explain why.

    Unfortunately, you have to change the assembler code to avoid overusing the cross paths.  I realize that is difficult.  But I don't see any other solution.

    Thanks and regards,

    -George

  • Thank you for your answer, and your analysis.

    Regards,
    Arnaud.