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.

CCS/TMS320F28027: Excluded ASM files not excluded by CCS when program mode compilation is enabled

Part Number: TMS320F28027

Tool/software: Code Composer Studio

Hi,

I've found that with the C2000 tools in CCS 9.0,1 asm files marked as excluded (in the project tree) are included in the compilation when the advanced compilation optimization "program mode compilation" is enabled. I can work around it by removing the .asm file, but I'd appreciate it if this bug could be resolved.

As a short example, create a C function pwm_init() and also an asm function pwm_init (in a separate .asm file):

void pwm_init() {
}
	.global _pwm_init
_pwm_init:
    LRETR

Then, mark the .asm file as to be excluded. (Note, automatic inlining needs to be disabled). I've found that in my project, a linker error is reported stating that the symbol is defined multiple times.

I'm using CCS9.0.1 with the TI compiler v18.12.1.LTS.

Building target: "Example_2802xHRPWM.out"
Invoking: C2000 Linker
"C:/ti/ccs901/ccs/tools/compiler/ti-cgt-c2000_18.12.1.LTS/bin/cl2000" -v28 -ml -mt -O4 --opt_for_speed=0 --fp_reassoc=off --advice:performance=all --define=_DEBUG --define=LARGE_MODEL -g --symdebug:dwarf_version=4 --c11 --diag_suppress=232 --diag_suppress=10063 --diag_warning=225 --issue_remarks --verbose_diagnostics --quiet --gen_func_subsections=on --gen_data_subsections=on --abi=coffabi --program_level_compile -ms -k --asm_listing -z -m"Example_2802xHRPWM.map" --stack_size=0x200 --warn_sections -i"C:/ti/ccs901/ccs/tools/compiler/ti-cgt-c2000_18.12.1.LTS/lib" -i"C:/ti/ccs901/ccs/tools/compiler/ti-cgt-c2000_18.12.1.LTS/include" -i"C:/Users/nconrad/msp399pwm/firmware_F2802x" --reread_libs --issue_remarks --verbose_diagnostics --xml_link_info="Example_2802xHRPWM_linkInfo.xml" --entry_point=code_start --rom_model -o "Example_2802xHRPWM.out" "asmfuncs.obj"  "../F2802x_generic_ram.cmd" "../driverlib/F2802x_Headers_nonBIOS.cmd" "f2802x_asmfuncs.obj" "f2802x_codestartbranch.obj" "test.obj"  -lrts2800_ml.lib 
 
>> Compilation failure
makefile:157: recipe for target 'Example_2802xHRPWM.out' failed
error: symbol "_pwm_init" redefined: first defined in "<whole-program>";
   redefined in "test.obj"
error: errors encountered during linking; "Example_2802xHRPWM.out" not built
gmake: *** [Example_2802xHRPWM.out] Error 1
gmake: Target 'all' not remade because of errors.