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.

about .cmd and .asm files

Other Parts Discussed in Thread: TMS320C6713B

I don't understand the .cmd and .asm files in ccs3.3 about c6000 dsp.Is there any useful books or files can help me?

  • Hi,

    .cmd file is generally a linker command file which defines memory mapped sections for a processor.

    Please post your cmd file here.

    Regards,

    Sid

  • Please see pages 28, 29 and 30 of the TM320C6000 DSP/BIOS User's guide

     

  • Now , i attach vecs_timer1.asm:

    ******************************************************


    * Copyright (C) 2003 Texas Instruments Incorporated
    * All Rights Reserved
    *
    *
    *---------vecs_timer1.asm---------
    *
    * Assembly file to set up interrupt service table (IST)
    *

    *------------------------------------------------------------------------------
    * Global symbols defined here and exported out of this file
    *------------------------------------------------------------------------------
       .global _vectors
       .global _c_int00
       .global _vector1
       .global _vector2
       .global _vector3
       .global _vector4
       .global _vector5
       .global _vector6
       .global _vector7
       .global _vector8
       .global _vector9  
       .global _vector10
       .global _vector11  
       .global _vector12 
       .global _vector13  
       .global _c_int14  ; Hookup the c_int14 ISR in main()
       .global _vector15

    *------------------------------------------------------------------------------
    * Global symbols referenced in this file but defined somewhere else.
    * Remember that your interrupt service routines need to be referenced here.
    *------------------------------------------------------------------------------
       .ref _c_int00

    *------------------------------------------------------------------------------
    * This is a macro that instantiates one entry in the interrupt service table.
    *------------------------------------------------------------------------------
    VEC_ENTRY .macro addr
        STW   B0,*--B15
        MVKL  addr,B0
        MVKH  addr,B0
        B     B0
        LDW   *B15++,B0
        NOP   2
        NOP  
        NOP  
       .endm


    *------------------------------------------------------------------------------
    * This is a dummy interrupt service routine used to initialize the IST.
    *------------------------------------------------------------------------------
    _vec_dummy:
      B    B3
      NOP  5

    *------------------------------------------------------------------------------
    * This is the actual interrupt service table (IST). It is properly aligned and
    * is located in the subsection .text:vecs. This means if you don't explicitly
    * specify this section in your linker command file, it will default and link
    * into the .text section. Remember to set the ISTP register to point to this
    * table.
    *------------------------------------------------------------------------------
     .sect ".text:vecs"
     .align 1024

    _vectors:
    _vector0:   VEC_ENTRY _c_int00    ;RESET
    _vector1:   VEC_ENTRY _vec_dummy  ;NMI
    _vector2:   VEC_ENTRY _vec_dummy  ;RSVD
    _vector3:   VEC_ENTRY _vec_dummy
    _vector4:   VEC_ENTRY _vec_dummy
    _vector5:   VEC_ENTRY _vec_dummy
    _vector6:   VEC_ENTRY _vec_dummy
    _vector7:   VEC_ENTRY _vec_dummy
    _vector8:   VEC_ENTRY _vec_dummy
    _vector9:   VEC_ENTRY _vec_dummy
    _vector10:  VEC_ENTRY _vec_dummy
    _vector11:  VEC_ENTRY _vec_dummy
    _vector12:  VEC_ENTRY _vec_dummy
    _vector13:  VEC_ENTRY _vec_dummy
    _vector14:  VEC_ENTRY _c_int14  ; Hookup the c_int14 ISR in main()
    _vector15:  VEC_ENTRY _vec_dummy

    *------------------------------------------------------------------------------

    1        Hi,I don't understand the programme in vecs_timer1.asm file as follows.
    ******************
    VEC_ENTRY .macro addr
        STW   B0,*--B15
        MVKL  addr,B0
        MVKH  addr,B0
        B     B0
        LDW   *B15++,B0
        NOP   2
        NOP  
        NOP  
       .endm
    *********************
    2         What's the functions about B0 and B15?

               When isr return,are there must 5 instructions followed that are  LDW   *B15++,B0    NOW 2         NOP             NOP?

               Is there must return instruction in the end of isr (c programme)?

    3        And in time1.c programme,i don't understand the programme set IRQ as follows:

    extern far void vectors();

     IRQ_setVecs(vectors);

    I want to know what's the value about ISTP that is the address of IST.

    4       Now i use tms320c6713b and I think DSP/BIOS is os on dsp, can i do my work without dsp/bios? What's the difference between DSP/BIOS and no DSP/BIOS project?