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.

TMS320F28377D: How to reduce running times of matrix calculation function in higher versions of CCS and Code Generation

Part Number: TMS320F28377D

    My program project originally developed in 28335 + CCS3.3 + Code Generation V6.20, because the program involved a large number of matrix calculation, compilation is very slow, so I extracted the asm file generated by matrix calculation source Code, and created a new static Library project in CCS3.3. The .asm file was added to generate the static library, the static library size is 297kb, so the entire program compiled much faster.

   But as the processing performance demand improve, I needed to port the original Code to 28377 + CCS6.1 + Code Generation V21.6.0. LTS. In order to improve compilation efficiency, I still extracte the .asm file generated by matrix calculation source Code, In order to generate. ASM File, the program project properties set-k –al –as refer to CCS3.3 program project settings, then create a new static Library project in CCS6.1. The asm file is added to generate the static library, which size is 320kb. In both static library project and program project,FPU32、TMU is open , floating point mode is relaxed. Actual running tests found that only 2.8 ms is required to call the matrix calculation function in the static function library generated by CCS3.3, however, the same matrix calculation function takes 3.3 ms in the static library generated by CCS6.1.

   

    Why does the same code increase both the static library size and the function call time in the higher versions of CCS and Code Generation? How to reduce running times of matrix calculation function in higher versions of CCS and Code Generation? For me, reducing running times of matrix calculation function is very important.

  • Hi,

    In both cases, the following can affect program size and run times:

    1)Was the FPU DSP library used or a standard RTS library?

    2) What was the optimisation level and type for both cases?

    3) Are you compiling in eabi or coff?

    Can you revert back with these?

    To reduce running time, you can change the optimisation levels or try running part of the code from SRAM

    -Shantanu

  • Hi,
    Thank you for your reply.
    1)I use the FPU DSP libary in my software project;
    2)In my CCS3.3 library project, The Optimize for speed(-mf) is No, The Opt Level is None.In my CCS6.1 libray project and software project, The Optimization level(--opt_level, -O) is off, Speed vs.size trade-offs(--opt_for_speed,-mf) is 2. I try to improve optimization level, but the computing result is error.
    3)I compile my software projcet in coff
    4)I have run part of the code from SRAM, but the code is so big, the inner SRAM of 28377 is so small.

  • When you run both codes, can you generate the disassemblies and share the calculation part of the code? You can do this by using the dis2000 tool in<CCS PATH>\tools\compiler\<compiler version>\bin\dis2000.exe
    When you generate the disassemblies, can you compare both? It would be helpful to know what the actual differences are.

    -Shantanu

  • Which code generation version is more suitable for my ccs6.1.1 software project?

  •  Code Generation V21.6.0. LTS that you are using should work fine.