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.

weird "unresolved symbols remain" error in CCSv4

Other Parts Discussed in Thread: TMS320F28335, CONTROLSUITE

I am running CCSv4 on a XP machine.  The program I am running is a simple C program that sets the GPIO0 on/off for the TMS320f28335 DSP processor.  I am using dsp2833xx  v131 files included in the sprc530.zip.  

I am trying to figure out a weird compilation error I keep getting.  Its weird because the steps I follow are from a tutorial which a few months ago I never had an issue following. Now however, on three mutually exclusive occasions I get the exact same compiler error and I still can't figure out where its coming from.  Luckily I can just comment out these variables in PieVect.c and the linking error goes away, but I should not have to do this.  Thanks I appreciate any help.

 undefined      first referenced      

  symbol            in file           

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

 _SCIRXINTC_ISR ./DSP2833x_PieVect.obj

 _SCITXINTC_ISR ./DSP2833x_PieVect.obj

 _TINT0_ISR     ./DSP2833x_PieVect.obj

 _XINT1_ISR     ./DSP2833x_PieVect.obj

 _XINT5_ISR     ./DSP2833x_PieVect.obj

 

error: unresolved symbols remain

error: errors encountered during linking; "FlashTestTry1.out" not built

 

>> Compilation failure

gmake: *** [FlashTestTry1.out] Error 1

gmake: Target `all' not remade because of errors.

  • Have you included the DSP2833x_common\source\DSP2833x_DefaultIsr.c file into your project?

    This is where these routines are defined.

  • Thanks Brandon.  Yea I do have that file linked to the project.  Thanks for pointing me to there, I just looked inside and apparently those interrupt service routines are commented out.  I don't think this is supposed to be done.  I re downloaded sprc530.zip which had these files and that seemed to have them correctly commented.  I just realized that I am working off a version of sprc530.zip that has been modified by a person who was building a system on my development machine.  I am not sure if this is good coding practice since this changes ti's document.  Should the files in sprc530.zip be preserved or are they allowed to be modified.  Thanks for your response.

  • The fact that source code is provided gives you flexibility if you think you need to modify it.  That said, I firmly believe it is important for you to have a repository of software on your workstation that is viewed as the "prestine copy" which should be unmodified.  This is the version of software as obtained from the vendor (in this particular case, the exact contents of SPRC530 as obtained from TI).

    When questions or support is requested of this software, it should be associated with the prestine copy as obtained by the vendor, not any particular modified version.
    EDIT : I should clarify this statement a bit.  I don't want to sound like we will not help, or support, you on changes or other code not provided by us, but it should be clearly identified up front in the discussion that the sources are either modified or not modified.  It helps in the understanding of the starting point.

    You may very well need to modify the sources for your particular application so having source code is very helpful in that environment.

     

    I know I talking both sides of the equation, but there isn't a single answer.  Bottom line, care needs to be taken when using these resources as to not create unnecessary workload.

  • I am having a very similar issue.  I am running the trial version of CCS v4 on windows xp.  I imported a 3.3 project to a 4 project.  I recieve the errors below which appears as if the .h files cannot be located but they are all included in my search path.  I've noticed that the errors occur when a variable defined in dsp280x_xxxx.h files are referenced.  Any ideas would be more than helpful.

    Projects/Eflex/lib/dsp280x/DSP280x_headers/include" --reread_libs --rom_model -o "eFlex_Pilot.out" "./Src/version.obj" "./Src/velocity.obj" "./Src/tmr.obj" "./Src/timer.obj" "./Src/tican_driver.obj" "./Src/tcanlib.obj" "./Src/tcan.obj" "./Src/ramp.obj" "./Src/pwm.obj" "./Src/power.obj" "./Src/position.obj" "./Src/pie.obj" "./Src/pid.obj" "./Src/nvram.obj" "./Src/monitor.obj" "./Src/main.obj" "./Src/limit.obj" "./Src/hall.obj" "./Src/fault.obj" "./Src/eeprom.obj" "./Src/drive.obj" "./Src/diaglog.obj" "./Src/debug.obj" "./Src/control.obj" "./Src/cntrlisr.obj" "./Src/bootapp.obj" "./Src/adc.obj" "./Src/SysCtrl.obj" -l"rts2800_ml.lib" "../2806_FLASH_lnk.cmd" "../DSP280x_Headers_nonBIOS.cmd"

    <Linking>

    "../2806_FLASH_lnk.cmd", line 106: warning: no matching section

     

     

    undefined first referenced

     

    >> Compilation failure

    symbol in file

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

    _AdcRegs ./Src/adc.obj

    _CpuTimer0Regs ./Src/timer.obj

    _ECanaLAMRegs ./Src/tican_driver.obj

    _ECanaMOTSRegs ./Src/tican_driver.obj

    _ECanaMboxes ./Src/tican_driver.obj

    _ECanaRegs ./Src/tican_driver.obj

    _ECap1Regs ./Src/velocity.obj

    _ECap2Regs ./Src/velocity.obj

    _ECap3Regs ./Src/velocity.obj

    _EPwm1Regs ./Src/pwm.obj

    _EPwm2Regs ./Src/pwm.obj

    _EPwm3Regs ./Src/pwm.obj

    _GpioCtrlRegs ./Src/tican_driver.obj

    _GpioDataRegs ./Src/tcan.obj

    _I2caRegs ./Src/eeprom.obj

    _PieCtrlRegs ./Src/pie.obj

    _PieVectTable ./Src/pie.obj

    _SysCtrlRegs ./Src/tican_driver.obj

    __IQ15div ./Src/limit.obj

    __IQ15sqrt ./Src/limit.obj

    __IQ24div ./Src/cntrlisr.obj

    __IQ24mag ./Src/cntrlisr.obj

    _clarke_calc ./Src/monitor.obj

    _ipark_calc ./Src/monitor.obj

    _park_calc ./Src/monitor.obj

    _svgendq_calc ./Src/monitor.obj

     

    error: unresolved symbols remain

    error: errors encountered during linking; "eFlex_Pilot.out" not built

    gmake: *** [eFlex_Pilot.out] Error 1

    gmake: Target `all' not remade because of errors.

    Build complete for project eFlex_Pilot

  • Kelly,

    The first set of undefined symbols such as AdcRegs, CpuTimer0Regs, ECanaLAMRegs are typically defined in a source file named DSP280x_GlobalVariableDefs.c. Can you check that this source file or something equivalent is included in the project?

    For the remaining symbols, they should be defined in a library. I see IQmath related symbols, so you probably need the IQMath library and possibly other libraries as well. Please check the  libraries that were part of your CCS 3.3 project and make sure they are all added into the CCSv4 project.

  • i have same problem with liking files.... help me ... thanks in advance 

  • Hi,

    I'm programming in 28335 and am getting the following error message in the console while building:

    <Linking>
    warning: creating output section ".ebss" without a SECTIONS specification
    warning: creating output section ".reset" without a SECTIONS specification

     undefined         first referenced
      symbol               in file     
     ---------         ----------------
     _ConfigCpuTimer   ./driver.obj    
     _CpuTimer0        ./driver.obj    
     _CpuTimer0Regs    ./driver.obj    
     _CpuTimer1        ./driver.obj    
     _CpuTimer1Regs    ./driver.obj    
     _CpuTimer2        ./driver.obj    
     _CpuTimer2Regs    ./driver.obj    
     _InitCpuTimers    ./driver.obj    
     _InitPieCtrl      ./driver.obj    
     _InitPieVectTable ./driver.obj    
     _InitSysCtrl      ./driver.obj    
     _PieCtrlRegs      ./driver.obj    
     _PieVectTable     ./driver.obj    

    error: unresolved symbols remain
    error: errors encountered during linking; "Driver.out" not built

    >> Compilation failure
    gmake: *** [Driver.out] Error 1
    gmake: Target `all' not remade because of errors.
    Build complete for project Driver

    I have included "DSP2833x_GlobalVariableDefs.c" and also "DSP2833x_DefaultIsr.h". Although, the specific ISRs defined in the "DSP2833x_DefaultIsr.h" file have  not been defined except that the following is the content within each function definition:

    interrupt void INT13_ISR(void)     // INT13 or CPU-Timer1
    {
      // Insert ISR Code here

      // Next two lines for debug only to halt the processor here
      // Remove after inserting ISR Code
      asm ("      ESTOP0");
      for(;;);
    }

    As we can see, this if required in the program, will not work. I have updated my copy but it gives the same code in the file definition. Please help me with my problem.

    Subhash

  • Hello,

    have you ever sloved the problem? I have exactly the same problem as Subhash had.

    I'd like to programm TMS320F28069PZT. Therefore I'd a look at the eqep_pos_speed example form ControlSuite.

    Have a look:

    //

    C:\Users\andreas\TexasInstruments\ccsv4\utils\gmake\gmake -k all
    'Building target: Sensor_2.out'
    'Invoking: Linker'
    "C:/Users/andreas/TexasInstruments/ccsv4/tools/compiler/c2000/bin/cl2000" --silicon_version=28 -g --diag_warning=225 --large_memory_model --unified_memory --cla_support=cla0 --float_support=fpu32 -z -m"Sensor_2.map" --stack_size=0x300 --warn_sections -i"C:/Users/andreas/TexasInstruments/ccsv4/tools/compiler/c2000/lib" -i"C:/Users/andreas/TexasInstruments/ccsv4/tools/compiler/c2000/include" --reread_libs --rom_model -o "Sensor_2.out"  "./Example_posspeed.obj" "./Example_EPwmSetup.obj" "./Example_2806xEqep_pos_speed.obj" -l"libc.a" -l"C:\ti\controlSUITE\libs\utilities\flash_api\2806x\v100\lib\rts2800_fpu32.lib" -l"C:\ti\controlSUITE\libs\math\IQmath\v15c\lib\IQmath_fpu32.lib" -l"C:\ti\controlSUITE\libs\math\FPUfastRTS\V100\lib\rts2800_fpu32_fast_supplement.lib" -l"C:\ti\controlSUITE\device_support\f2806x\v135\F2806x_common\lib\SFO_TI_Build_V6b.lib" -l"C:\ti\controlSUITE\device_support\f2806x\v135\F2806x_common\lib\SFO_TI_Build_V6b_FPU.lib" "../28069_RAM_lnk.cmd"
    <Linking>

     undefined         first referenced                 
      symbol               in file                      
     ---------         ----------------                 
     _EPwm1Regs        ./Example_EPwmSetup.obj          
     _EQep1Regs        ./Example_posspeed.obj           
     _GpioCtrlRegs     ./Example_2806xEqep_pos_speed.obj
     _GpioDataRegs     ./Example_2806xEqep_pos_speed.obj
     _InitEPwm1Gpio    ./Example_2806xEqep_pos_speed.obj
     _InitEQep1Gpio    ./Example_2806xEqep_pos_speed.obj
     _InitPieCtrl      ./Example_2806xEqep_pos_speed.obj
     _InitPieVectTable ./Example_2806xEqep_pos_speed.obj
     _InitSysCtrl      ./Example_2806xEqep_pos_speed.obj
     _PieCtrlRegs      ./Example_2806xEqep_pos_speed.obj
     _PieVectTable     ./Example_2806xEqep_pos_speed.obj

    error: unresolved symbols remain
    error: errors encountered during linking; "Sensor_2.out" not built

    >> Compilation failure
    gmake: *** [Sensor_2.out] Error 1
    gmake: Target `all' not remade because of errors.
    Build complete for project Sensor_2

    //

    Best regards,

    Andreas