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.

TMS320F2808: Incorrect start program from entry point (code_start)

Part Number: TMS320F2808

Tool/software:

Hello All,

I modifies in CCS older program which was created under compiler version TI v4.1.3, the program works correct. When I compile this program under newer version of TI compiler for example TI v6.4.0 or TI v18.12.1 LTS, the program doesn't work. The program starts from special entry point because there is also boot program in memory. I compared map files that are created by means of compiler TI v4.1.3 and TI v6.4.0.

I have noted that in map file compiled under compiler TI v4.1.3 DSP280x_CodeStartBranch.obj (.text) is on address

codestart
* 0 003e8080 00000002
         003e8080 00000002 DSP280x_CodeStartBranch.obj (codestart)


.text 0 003e8082 00008587
              003e8082 00000008 DSP280x_CodeStartBranch.obj (.text)


but in map file compiled under compiler TI v6.4.0 DSP280x_CodeStartBranch.obj (.text) is on address

codestart
* 0 003e8080 00000002
         003e8080 00000002 DSP280x_CodeStartBranch.obj

.text 0 003e8082 00008c80
             003f0cf5 00000008 DSP280x_CodeStartBranch.obj (.text)

Is that correct, DSP280x_CodeStartBranch.obj (.text) on address 003f0cf5?
Could you advice me what is different, when I compiled program under compiler version TI v4.1.3 and TI v6.4.0, because option (-e) entry point == start_code is set same for both compilers.

Best regards

  • The difference you show between the two builds is legitimate. And it is very unlikely to cause this ...

    the program doesn't work

    Please read the first part of the article Linker Command File Primer.  Focus on understanding the terms ...

    • input section
    • output section

    The file DSP280x_CodeStartBranch.obj contributes two input sections: codestart and .text.  The input section codestart goes on to be the only input section in the output section also named codestart.  The .text input section from DSP280x_CodeStartBranch.obj goes on to be one part of the larger output section named .text.  The difference between the builds is where the .text input section from DSP280x_CodeStartBranch.obj lands inside of the output section named .text.  That is a legitimate difference.  That one difference alone is very unlikely to cause the program to fail.  The underlying parts of the compiler tools that make all of this work have done it the same way for a very long time, with no issues.

    Thanks and regards,

    -George