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.

TMS320F280049: TMU Support Compiling DCL

Part Number: TMS320F280049


I'm trying to use the calcGamma function from the DCL for an NLPID implementation.  This function appears to use some TMU instructions.  I've got TMU turned on and relaxed FP, but the compiler is complaining.  This is 21.6.0 LTS.  Any ideas?  Am I doing something dumb?  Is this a bug?  This feels like a bug, but I could be wrong.

Thanks,

Trey

Building file: "../control/DCL_calcGamma.asm"

Invoking: C2000 Compiler

"/Applications/ti/ccs1010/ccs/tools/compiler/ti-cgt-c2000_21.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -Ooff --fp_mode=relaxed --fp_reassoc=on --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common/f28004x/dcl/include" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/Sygnal-MCM/can_protocol" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common/f28004x" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common/f28004x/sygnal_utilities" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common/f28004x/floatingptdsp/include/" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common/f28004x/vcu0/include" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/Sygnal-MCM" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common/f28004x/device_support/f28004x/common/include" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common/f28004x/device_support/f28004x/headers/include" --include_path="/Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/common/f28004x/driverlib" --include_path="/Applications/ti/ccs1010/ccs/tools/compiler/ti-cgt-c2000_21.6.0.LTS/include" --advice:performance=all --define=CPU1 --relaxed_ansi --printf_support=minimal --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --gen_data_subsections=on --abi=coffabi --cla_background_task=on --cla_signed_compare_workaround=on --preproc_with_compile --preproc_dependency="control/DCL_calcGamma.d_raw" --obj_directory="control"  "../control/DCL_calcGamma.asm"

2 Assembly Errors, No Assembly Warnings

>> Compilation failure

control/subdir_rules.mk:14: recipe for target 'control/DCL_calcGamma.obj' failed

"../control/DCL_calcGamma.asm", ERROR!   at line 28: [E0002] TMU instruction requires valid --tmu_support option

LOG2F32 R2H, R1H ; R2H = log2(d)

"../control/DCL_calcGamma.asm", ERROR!   at line 35: [E0002] TMU instruction requires valid --tmu_support option

IEXP2F32 R3H, R2H ; R3H = d^a

Errors in Source - Assembler Aborted

gmake: *** [control/DCL_calcGamma.obj] Error 1

  • Hi Trey,

    The IEXP2F32 instruction used in the NLPID assembly function is only supported on devices with TMU Type-1. The F280049 device has TMU Type-0 and does not have these NLPID instructions. You can use DCL_getNLPIDgamma instead, which uses the math library to do the power calculation. Also please avoid using DCL_runNLPID_C3 for the same reason. You can use DCL_runNLPID_C2 instead.

    If you want to explore these instructions, please look at F280025 and F280039 devices.

    Han