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.

请问关于CCS2.2生成的obj、lib、out、dat文件的细节疑问

在项目中,有如下疑问:

1. 经常要使用其他部门生成的obj和lib文件,但在改动obj、lib或者自己的程序后,会出现仿真时load了程序,但不能go main的情况,这是否和obj、lib是在之前的项目中生成,而现在的项目新定义了很多变量,内存地址等发生变化引起的呢?

2. out文件load进dsp后,File-Data-Save成dat文件,out文件和dat文件的具体格式是什么呢?能否用程序直接将out转成dat,而不用先load进dsp呢?

谢谢

  • 请问用的是哪款器件?怎么还在用这么老的ccs2.2。

    不能进go main的话,用仿真器看一下程序听在哪里?是在_c_int00还是跑飞了?

    .out是COFF格式,.dat文件第一行表示数据类型,第二行表示数据长度,剩下的就是数据。
    http://processors.wiki.ti.com/index.php?title=C5000_DSP_FAQ#Why_can_I_not_correctly_move_data_that_spans_a_64K-word_boundary.3F

    TI没有工具可以将.out文件直接转.dat。

  • 1. 用的器件是6713B,还在用ccs2.2的原因是项目开展很多年了,很多算法积累,所以一直在沿用。新的项目打算往ccs6.1转了,还在模式。

    2. 不能go main时,程序停不下来,如果按暂停,就提示要复位仿真器,然后软件也要重新关闭,设备也要断电重启。

    3. 有没有详细介绍coff格式和dat的格式的文章呢?我可以按照格式说明,自己写程序转换。

    谢谢

  • 1. 你先试试例程看能不能go main, 看是硬件的问题还是软件的问题。

    2. 格式在之前回复过了。你可以先用hex6x.exe工具转换成十六进制文件,再去转.dat文件。不过十六进制文件本来就可以烧写进flash,不需要再转成.dat文件。

  • kevin wang7 说:
    2. 不能go main时,程序停不下来,如果按暂停,就提示要复位仿真器,然后软件也要重新关闭,设备也要断电重启。

    程序跑在片外还是片上内存?

  • 我们烧写程序的方式是:通过串口和原来固话的程序通信,将数据传输到dsp后写到外部flash中去;启动的时候直接将flash中的程序加载到dsp内部ram中运行。所以,我们之前的做法是将out文件load进dsp后,将ram中数据save成dat文件,再将此dat文件通过串口向上面描述的那样“下载”到flash中。

  • 1. 其他之前可以仿真的程序,现在继续可以仿真,只不过修改过后可能不能仿真了,所以和硬件无关。

    2. 程序运行在内部ram中,外部的sdram只是做一些不需要频繁存取的数据。