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.
Brandon
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>
<Linking>
"../2806_FLASH_lnk.cmd", line 106: warning: no matching section
_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: errors encountered during linking; "eFlex_Pilot.out" not built
gmake: *** [eFlex_Pilot.out] Error 1
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.
If a post answers your question please mark it with the "Verify Answer" button
Search the wikis for common questions: CGT, BIOS, CCSv3, CCSv4Track a known bug with SDOWP. Enter the bug id in the "Find Record ID" box
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 specificationwarning: 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 remainerror: errors encountered during linking; "Driver.out" not built>> Compilation failuregmake: *** [Driver.out] Error 1gmake: 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