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.

CCS/TMDSDSK6416: impossible to compile an assembly language file

Part Number: TMDSDSK6416
Other Parts Discussed in Thread: TMS320C6416

Tool/software: Code Composer Studio

good day.
Currently, I have the TMS320C6416 DSP Starter Kit (DSK). A bit old but quite powerful card.
As a complement to this test hardware I am using the book:


Digital Signal Processing and Applications with the TMS320C6713 and TMS320C6416 DSK (second edition)

Recommended to anyone who does not know it. However, some sample assembler programs for the floating point card TMS320C6713. They cannot be compiled for the TMS320C6416 card. Of course, I already modified the libraries according to my card, even so I receive an error that says "impossible to create linker file" Below I leave the code that I am trying to execute

specifically it is example 4.14 of the previously mentioned book (page 201).

Does anyone have an idea why the linker file cannot be created?

  • user6153249 said:
    I receive an error that says "impossible to create linker file"

    I have never seen that diagnostic.  The image you attempted to attach is not visible.  What tool or utility emits that diagnostic?

    Thanks and regards,

    -George

  • sorry for my late answer. I attach the code in assembler. I am running Conde Composer 3.8 on windows XP Home edition

    //FIRcirc.c C program calling ASM function using circular buffer

    #include "DSK6713_AIC23.h" //codec-DSK support file
    Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate

    #define DSK6713_AIC23_INPUT_MIC 0x0015
    #define DSK6713_AIC23_INPUT_LINE 0x0011
    Uint16 inputsource=DSK6713_AIC23_INPUT_LINE; // select input source
    #include "bp1750.cof" //BP at 1750 Hz coeff file
    int yn = 0; //init filter's output
    interrupt void c_int11() //ISR
    {
    short sample_data;
    sample_data = (input_sample()); //newest input sample data
    yn = fircircfunc(sample_data,h,N); //ASM func passing to A4,B4,A6

    output_sample((short)(yn>>15));
    return;
    //filter's output
    //return to calling function

    }
    void main()
    {
    comm_intr(); //init DSK, codec, McBSP

    while(1);
    }
    //infinite loop


    ASM:

    ;FIRcircfunc.asm ASM function called from C using circular addressing
    ;A4=newest sample, B4=coefficient address, A6=filter order
    ;Delay samples organized: x[n-(N-1)]...x[n]; coeff as h(0)...h[N-1]
    .def _fircircfunc
    .def last_addr
    .def delays
    .sect "circdata" ;circular data section
    .align 256 ;align delay buffer 256-byte boundary
    delays .space 256 ;init 256-byte buffer with 0's
    last_addr .int last_addr-1 ;point to bottom of delays buffer

    .text
    _fircircfunc:
    MV A6,A1
    ;code section
    ;FIR function using circ addr
    ;setup loop count

    MPY A6,2,A6 ;since dly buffer data as byte
    ZERO A8 ;init A8 for accumulation
    ADD A6,B4,B4 ;since coeff buffer data as bytes
    SUB B4,1,B4 ;B4=bottom coeff array h[N-1]
    MVKL 0x00070040,B6 ;select A7 as pointer and BK0
    MVKH 0x00070040,B6 ;BK0 for 256 bytes (128 shorts)
    MVC B6,AMR ;set address mode register AMR
    MVKL last_addr,A9 ;A9=last circ addr(lower 16 bits)
    MVKH last_addr,A9 ;last circ addr (higher 16 bits)
    LDW *A9,A7 ;A7=last circ addr
    NOP 4
    STH A4,*A7++ ;newest sample-->last address

    loop: ;begin FIR loop
    LDH *A7++,A2 ;A2=x[n-(N-1)+i] i=0,1,...,N-1
    || LDH *B4--,B2 ;B2=h[N-1-i] i=0,1,...,N-1
    SUB A1,1,A1 ;decrement count

    [A1] B loop ;branch to loop if count # 0
    NOP 2
    MPY A2,B2,A6 ;A6=x[n-(N-1)+i]*h[N-1+i]
    NOP
    ADD A6,A8,A8 ;accumulate in A8
    STW A7,*A9 ;store last circ addr to last_addr
    B B3 ;return addr to calling routine
    MV A8,A4 ;result returned in A4
    NOP 4


  • I'm confused.  Does the problem occur when building or when running?  

    If the problem occurs when building a C file, then for that C file, please follow the directions in the article How to Submit a Compiler Test Case.

    If the problem occurs when building an assembly file, the process is similar.  Except you cannot preprocess an assembly file.  It appears this assembly code does not include any other files, so preprocessing is not required.

    Thanks and regards,

    -George


  • the problem occurs during compilation. Thank you, I will verify the treath as soon as possible