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.

C64x vs C64x+

Other Parts Discussed in Thread: TMS320DM6437

Hi,

I am working with the TMS320DM6437 DSP and I would like to perform an experiment.

I am interesting in measuring the total cycles for only one source code but two different compiler configurations:

  1.- Letting the compiler use the Compact Instructions Set, new instructions...

  2.- With no extensions.

I got problems with the second case.

I selected -mv6400 instead of -mv6400+ for the Target Version in the Build Options window.

At the end of the compilation, while compiling DM6437.s62, I can read in the output window:

-----------------------------------------------------------------------------------------------------------------------------------

"DM6437cfg.s62", ERROR!   at line 365: [ ***** USER ERROR ***** - ]
         Project build options do not match Global configuration settings.
           Compiler options do not specify -mv64+, but configuration is for
           C64x+
                .emsg "Project build options do not match Global configuration settings.  Compiler options do not specify -mv64+, but configuration is for C64x+"

"DM6437cfg.s62", ERROR!   at EOF: [E0300] The following symbols are undefined:
2 Assembly Errors, No Assembly Warnings
  HWI_INTRMULTLOW
  HWI_INTRMULTHIGH
  GBL_L2MARMASK1
  GBL_L2MARMASK2
  GBL_L2MARMASK3
  GBL_L2MARMASK4
  GBL_L2MARMASK5
  GBL_L2CONFIGALLOC
  GBL_L2ALLOC
  GBL_C641XL2PRIORITY

Errors in Source - Assembler Aborted

>> Compilation failure

-------------------------------------------------------------------------------------------------------------------------------------

It sounds like compiler knows that the target DSP is a DaVinci Processor.

I think the the incoherence is in DSP BIOS configuration but I don´t know how to fix it.

 

Does anybody know how to compile projects for DM6437 with no extensions?

 

Thanks in advance!

Gonzalo

  • BIOS uses libraries that are already built for C64x+ so if you have a project that is designated for C64x you will get these sorts of errors. You could get past this by using a non-BIOS project, that would give you more direct control over the instructions used, though that takes a bit of work especially if you are using existing BIOS constructs like drivers.

    Assuming you have just some particular code that you want to test, one way I could see to get the C64x version of the code in to a C64x+ project would be to have the code in question built as a C64x library that you include into the C64x+ project. As the C64x+ core is binary backwards compatible with C64x the tools will let you link in a C64x library, this way you can use existing older libraries that were optimized for C64x on a C64x+ device. The tools were not built to allow you to be building both in the same project unfortunately (the file specific options do not let you change ISA), however this is not too suprising since that would take additional testing to validate and there is no practical use case for the capability outside of this sort of testing.

    At least this is how I would go about doing it, there may be a better way I am not familiar with.