We are using the F28M35H52C1 processor and had code working on the C28 side of the processor. We are using CCS 5.4.0. We updated the compiler to v6.1.4 and now we get linker errors, "error #16008-D: file "./F28M35x_common/source/F28M35x_DefaultIsr.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C28FPU32" specified in a previous file or on the command line", or "error #16008-D: file "./F28M35x_common/source/F28M35x_DMA.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line".
How do you figure out which is the offending file or where on the command line? We are using <automatic> to select the runtime support library.
Here is the entire CDT output.
**** Build of configuration Debug for project ServoControl ****
"C:\\ti\\ccsv5\\utils\\bin\\gmake" -k all
'Building target: ServoControl.out'
'Invoking: C2000 Linker'
"C:/ti/ccsv5/tools/compiler/c2000_6.1.4/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --vcu_support=vcu0 -g --gen_acp_raw --diag_warning=225 --display_error_number --diag_wrap=off -z --stack_size=0x300 -m"ServoControl.map" --warn_sections -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.4/include" -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.4/lib" --reread_libs --verbose_diagnostics --display_error_number --diag_wrap=off --xml_link_info="ServoControl.xml" --rom_model -o "ServoControl.out" "./F28M35x_common/source/F28M35x_usDelay.obj" "./F28M35x_common/source/F28M35x_TempSensorConv.obj" "./F28M35x_common/source/F28M35x_SysCtrl.obj" "./F28M35x_common/source/F28M35x_Spi.obj" "./F28M35x_common/source/F28M35x_Sci.obj" "./F28M35x_common/source/F28M35x_PieVect.obj" "./F28M35x_common/source/F28M35x_PieCtrl.obj" "./F28M35x_common/source/F28M35x_OscComp.obj" "./F28M35x_common/source/F28M35x_Mcbsp.obj" "./F28M35x_common/source/F28M35x_Ipc_Util.obj" "./F28M35x_common/source/F28M35x_Ipc_Lite.obj" "./F28M35x_common/source/F28M35x_Ipc.obj" "./F28M35x_common/source/F28M35x_I2C.obj" "./F28M35x_common/source/F28M35x_Gpio.obj" "./F28M35x_common/source/F28M35x_EQep.obj" "./F28M35x_common/source/F28M35x_EPwm.obj" "./F28M35x_common/source/F28M35x_ECap.obj" "./F28M35x_common/source/F28M35x_DisInt.obj" "./F28M35x_common/source/F28M35x_DefaultIsr.obj" "./F28M35x_common/source/F28M35x_DMA.obj" "./F28M35x_common/source/F28M35x_DBGIER.obj" "./F28M35x_common/source/F28M35x_CpuTimers.obj" "./F28M35x_common/source/F28M35x_Comp.obj" "./F28M35x_common/source/F28M35x_CodeStartBranch.obj" "./F28M35x_common/source/F28M35x_CSMPasswords.obj" "./F28M35x_common/source/F28M35x_Adc.obj" "./F28M35x_headers/source/F28M35x_GlobalVariableDefs.obj" "./main.obj" "./SinCosEncoder.obj" "./PWM.obj" -l"libc.a" "../F28M35x_generic_wshared_C28_RAM.cmd"
<Linking>
error #16008-D: file "./F28M35x_common/source/F28M35x_DefaultIsr.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C28FPU32" specified in a previous file or on the command line
error #16008-D: file "./F28M35x_common/source/F28M35x_DMA.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
>> Compilation failure
error #16008-D: file "./F28M35x_common/source/F28M35x_DBGIER.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./F28M35x_common/source/F28M35x_CpuTimers.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./F28M35x_common/source/F28M35x_Comp.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./F28M35x_common/source/F28M35x_CodeStartBranch.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./F28M35x_common/source/F28M35x_CSMPasswords.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./F28M35x_common/source/F28M35x_Adc.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./F28M35x_headers/source/F28M35x_GlobalVariableDefs.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./main.obj" specifies ISA revision "C28FPU32", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./SinCosEncoder.obj" specifies ISA revision "C28FPU32", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
error #16008-D: file "./PWM.obj" specifies ISA revision "C2800", which is not compatible with ISA revision "C2700" specified in a previous file or on the command line
warning #10247-D: creating output section "csm_rsvd" without a SECTIONS specification
warning #10247-D: creating output section "csmpasswds" without a SECTIONS specification
warning #10247-D: creating output section "ecslpasswds" without a SECTIONS specification
warning #10247-D: creating output section "flashexeonly" without a SECTIONS specification
"../F28M35x_generic_wshared_C28_RAM.cmd", line 176: error #10099-D: program will not fit into available memory. placement with alignment/blocking fails for section "ramfuncs" size 0x6a page 0. Available memory ranges:
RAMM0 size: 0x3b0 unused: 0x0 max hole: 0x0
RAML0 size: 0x1000 unused: 0x2 max hole: 0x2
RAML1 size: 0x1000 unused: 0x49 max hole: 0x49
ramfuncs : >> RAMM0 | RAML0 | RAML1, PAGE = 0
"../F28M35x_generic_wshared_C28_RAM.cmd", line 178: error #10099-D: program will not fit into available memory. placement with alignment/blocking fails for section ".cinit" size 0xdc page 0. Available memory ranges:
RAMM0 size: 0x3b0 unused: 0x0 max hole: 0x0
RAML0 size: 0x1000 unused: 0x2 max hole: 0x2
RAML1 size: 0x1000 unused: 0x49 max hole: 0x49
.cinit : > RAMM0 | RAML0 | RAML1, PAGE = 0
undefined first referenced
symbol in file
--------- ----------------
FD$$DIV ./main.obj
FD$$MPY ./main.obj
FD$$TOL ./SinCosEncoder.obj
FD$$TOU ./main.obj
FS$$TOFD ./main.obj
__IQ24cos ./SinCosEncoder.obj
__IQ24cosPU ./main.obj
__IQ24div ./SinCosEncoder.obj
__IQ24sin ./SinCosEncoder.obj
__IQ24sinPU ./main.obj
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "ServoControl.out" not built
gmake: *** [ServoControl.out] Error 1
gmake: Target `all' not remade because of errors.
**** Build Finished ****
We are aware of the memory mapping issue, we'll fix that after we get rid of the other errors. We have tried explicitly linking with rts2800_ml.lib, rts
We don't know where to look to fix this.
Thanks in advance for your help!
Paul