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.

C6000如何生成cmd文件

Other Parts Discussed in Thread: TMS320C6701

如何初步产生自己需要的cmd文件?

  • 看这里:http://www.ti.com/lit/ug/spru187u/spru187u.pdf

    Chapter 5

    Linking C/C++ Code

  • 由三部分组成:
    输入/输出定义:这一部分,可以通过ccs的“Build Option........”菜单设置
    。obj 链接的目标文件
    。lib 链接的库文件
    。map 生成的交叉索引文件
    。out 生成的可执行代码
    MEMORY命令:描述系统实际的硬件资源
    SECTION命令:描述“段”如何定位
    例子
    .cmd文件
    -c
    -o hello.out
    -m hello.map
    -stack 100
    -l rts2xx.lib
    MEMORY
    {
    PAGE 0: VECT:origin=0x8000,length 0x040
    PAGE 0: PROG:origin=0x8040,length 0x6000
    PAGE 1: DATA:origin=0x8000,length 0x400
    }
    SECTIONS
    {
    .vextors >VECT PAGE 0
    .text >PROG PAGE 0
    .bss >DATA PAGE 1
    .const >DATA PAGE 1
    }
    存储模型:c程序的代码和数据如何定位
    系统定义
    .cinit 存放程序中的变量初值和常量
    .const 存放程序中的字符常量、浮点常量和用const声明的常量
    .switch 存放程序中switch语句的跳转地址表
    .text 存放程序代码
    .bss 为程序中的全局和静态变量保留存储空间
    .far 为程序中用far声明的全局和静态变量保留空间
    .stack 为程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果
    .sysmem 用于程序中的malloc 、calloc 、和realoc 函数动态分配存储空间
    用户定义:
    #pragma CODE_SECTION(symbol."section name")
    #pragma DATA_SECTION(symbol,"section name")

    ///////////////////////////////////////////////////////////////////////////////////////////////////////


    MEMORY
    {PAGE 0 :ROM: o=0200h, l=5000h // 不知道为什么这个L小了,老是出错,大了就好了
    PAGE 1: RAM: o=0200h, l=5000h
    }

    SECTIONS
    { .text:>ROM PAGE 0
    .bss:> RAM PAGE 1
    .const:>RAM PAGE 1
    .cio:>RAM PAGE 1
    .cinit:>ROM PAGE 0
    .stack:>RAM PAGE 1
    .sysmem:>RAM PAGE 1
    }
    错误是这么提示的,怎么改啊??
    >> warning: creating .stack section with default size of 400 (hex) words.
    Use
    -stack option to change the default size.
    >> warning: creating .sysmem section with default size of 400 (hex) words.
    Use -heap option to change the default size.

    另外: 为什么一定要有。STACK。SYSMEM。CIO 这些分配啊, 我看书上很多都没有分配这些段啊, 但是我不分配,就出错提示要分配这些段????

    //WINTECH的cmd文件及与程序中内存的链接方法

    /* ======================================================================== */
    /* NAME */
    /* link_dm643.cmd */
    /* DESCRIPTION */
    /* Linker-command file for the RF5 application */
    /* ------------------------------------------------------------------------ */
    /* Copyright (c) 2005 Wintech Digital System Technology Corp. */
    /* All Rights Reserved. */
    /* ======================================================================== */

    -l vphone_dm643cfg.cmd

    _H263ENC_IH263ENC = _H263ENC_TI_IH263ENC;
    _H263DEC_IH263DEC = _H263DEC_TI_IH263DEC;

    SECTIONS
    {

    H263ENC: > SDRAM, align=0x1000
    {
    *(h263encp)
    *(h263enc)
    *(h263share)
    *(h263decp)
    *(h263dec)
    }
    }

    -l ..\all_lib_files\h263_enc_720_480_cat.lib
    -l ..\all_lib_files\h263_dec_720_480_cat.lib

    -l ..\all_lib_files\vdpvport.l64
    -l ..\all_lib_files\vdp643bsl.lib
    -l ..\..\c6400\dsplib\lib\dsp64x.lib
    -l ..\all_lib_files\dm643_edma_aic23.l64

    -l ..\all_lib_files\c6x1x_edma_mcasp.l64
    -l ..\..\referenceframeworks\lib\algrf.l64
    -l ..\..\referenceframeworks\lib\chan.l64
    -l ..\..\referenceframeworks\lib\icc.l64
    -l ..\..\referenceframeworks\lib\scom.l64
    -l ..\..\referenceframeworks\lib\sscr.l64
    -l ..\..\referenceframeworks\lib\utl.l64


    -l ..\all_lib_files\dm643.lib

    -l ..\..\c6000\ndk\lib\c6400_l\netctrl.lib

    -l ..\..\c6000\ndk\lib\hal\evmdm642_l\hal_eth_dm642.lib
    -l ..\..\c6000\ndk\lib\hal\evmdm642_l\hal_ser_stub.lib
    -l ..\..\c6000\ndk\lib\hal\evmdm642_l\hal_timer.lib
    -l ..\..\c6000\ndk\lib\hal\evmdm642_l\hal_userled.lib

    -l ..\..\c6000\ndk\lib\c6400_l\nettool.lib
    -l ..\..\c6000\ndk\lib\c6400_l\stack.lib
    -l ..\..\c6000\ndk\lib\c6400_l\os.lib
    -l img64x.lib

    -l ..\..\referenceframeworks\lib\acpy2_64x.l64
    -l ..\..\referenceframeworks\lib\dman.l64

    -l ..\..\c6400\dsplib\lib\dsp64x.lib
    -l img64x.lib

    -l ..\all_lib_files\h323_rtp.lib
    -l ..\all_lib_files\h323_core.lib
    -l ..\all_lib_files\h323_low.lib
    -l ..\all_lib_files\h323_hjgl.lib

    -l ..\all_lib_files\UB_Live_H264BP_Dec.l64
    -l ..\all_lib_files\UB_Live_H264BP_DM643_Enc.l64
    -l ..\all_lib_files\UB_Live_ImageTools_DM643.l64

    -l ..\all_lib_files\wtosd.lib
    -l ..\all_lib_files\G723_DM643.lib
    -l ..\all_lib_files\G729_DM643.lib

    SECTIONS
    {
    .user_data_int > ISRAM
    .cache_align > ISRAM

    .text:_CSL6400_LIB_ > ISRAM
    .text:_CSL642_LIB_ > ISRAM
    .text:_DAT_copy > ISRAM
    .text:_DAT_copy2d > ISRAM
    .text:_DAT_wait > ISRAM
    .text:_EDMA_intAlloc > ISRAM
    .text:_DAT_open > ISRAM
    .text:_DAT_close > ISRAM

    .user_data_ext > SDRAM

    /* the tables should be placed in external RAM */
    .h264encTables > SDRAM
    .h264decTables > SDRAM
    }
    /* ======================================================================== */
    /* End of file: link_dm643.cmd */
    /* ------------------------------------------------------------------------ */
    /* Copyright (c) 2005 Wintech Digital System Technology Corp. */
    /* All Rights Reserved. */
    /* ======================================================================== */

    //程序中的引用部分

    static unsigned char Y_out[FRAME_BUF_SIZE<<2];
    static unsigned char Cb_out[FRAME_BUF_SIZE<<1];
    static unsigned char Cr_out[FRAME_BUF_SIZE<<1];

    #pragma DATA_SECTION(YArray_temp4, ".user_data_ext")
    #pragma DATA_SECTION(CbArray_temp4, ".user_data_ext")
    #pragma DATA_SECTION(CrArray_temp4, ".user_data_ext")
    #pragma DATA_ALIGN(YArray_temp4, 128);
    #pragma DATA_ALIGN(CbArray_temp4, 128);
    #pragma DATA_ALIGN(CrArray_temp4, 128);

    unsigned char YArray_temp4[(FRM_WIDTH*FRM_HEIGHT*4)<<2];
    unsigned char CbArray_temp4[(FRM_WIDTH*FRM_HEIGHT)*4];
    unsigned char CrArray_temp4[(FRM_WIDTH*FRM_HEIGHT)*4];

    #pragma DATA_SECTION( Y_out, ".user_data_ext" )
    #pragma DATA_ALIGN( Y_out, 128)

    #pragma DATA_SECTION( Cb_out, ".user_data_ext" )
    #pragma DATA_ALIGN( Cb_out, 128)

    #pragma DATA_SECTION( Cr_out, ".user_data_ext" )
    #pragma DATA_ALIGN( Cr_out, 128)

  • pdf找不到啊

  • 你好!我在使用ccs3.3时,load program能够下载,程序也能运行!但是每次RESET CPU会出现下面问题:

    Trouble Halting Target CPU : Error 0x80000020/-1070 Fatal Error during: Execution,  An unknown error prevented the emulator from accessing the processorin a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.

    这是什么问题呢?

  • 你好!有没有c6000系列的中断向量表.asm文件相关配置的模板,谢谢!

  • 你好,在c6713的csl例子中提供有一个中断向量表.asm文件,路径是:C:\C6xCSL 6713\examples\c6000\dsk6713\csl\timer\timer1

  • CPU Reset – Typically isolated to reset just the core, not the entire device. In multi-core devices typically isolated to a single core. In devices that support a software reset, a CCS Reset may be equivalent.

    你用的那款芯片?又没试过在CCSv5下的情况。


  • 用的是tms320c6701的芯片,没有在ccsv5下用的。试过6713的芯片,可以reset cpu;但是6701的不可以reset CPU

  • c6701和c6713的中断向量表应该是一样的吧?