Hi,
I am trying to run sample code obtained from the C28x FFT library. When I try to run the 128 points real FFT project I get the following error:
fatal error: file "C:\\tidcs\\c28\\dsp_tbox\\fft\\cstb\\fft128r\\build\\Debug\\fftrd.obj" has a Tag_Memory_Model attribute value of "2" that is different than one previously seen ("1"); combining incompatible files
I've checked the build properties to see if all the files were being built as "large model". It seems to me that they are. I'm using CCStudio version 3.3.83.19. Can someone please help?
you can try the one under http://focus.ti.com/docs/toolsw/folders/print/controlsuite.html
Thanks Yu, but I tried the FFT code in Control Suite. I was unable to get that to work as well.
There must be something wrong in you set up, those example code only works for CCS4. If you r using ccs 3 u need to do some porting work. I don't have f28335 test board at this time. But i tested it in F2812 (128 pts) with CCS 3.1 it's working fine.
I am using CCStudio v3.3. I am not sure what you mean by porting work?
CCS 4 has a macro file for defining relative path and would potentially mess up under CCS 3 environment. Porting means creating a new project in CCS 3 and put all of those source file , header file and lib source file in your new project and run it. If you don't know how to do that, try to find a working ccs 3 example from SPRC530 http://focus.ti.com/docs/toolsw/folders/print/sprc530.html and replace the functionality in main function with the fft code of main function in rfft.c. Replace the cmd file also. Added the necessary header file like fft.h into your project. If you don't know how to set up the lib path, just copy the source assembly file (controlSUITE/libs/dsp/FixedPointLib/v101/source/*.asm) into your project folder. Run it and compare the result with the result of the matlab script.
I've tried a very similar process as well. When I try to compile to code I get an unresolved symbols error for DLOG_4CH_init & DLOG_4CH_update. I'm sure that if I can find the DLOG4CH library file that these errors should go away. I haven't had any luck finding that file on TI's website.
you can delete any symbol associated with DLOG4CH (data log 4 channels), that's from old legacy library and is useless for this fft code. it might not be cleaned up carefully. but in which file it complain about this symbol? in cmd file?
It says that the files are first referenced in the fftrd.obj file.
Here is my fft main file code:
*/
#include "stb.h"#include "fft.h"
/* Create an instance of Signal generator module */SGENTI_1 sgen = SGENTI_1_DEFAULTS;
/* Create an instance of DATALOG Module */DLOG_4CH dlog=DLOG_4CH_DEFAULTS; /* Create an Instance of FFT module */#define N 256 #pragma DATA_SECTION(ipcb, "FFTipcb");#pragma DATA_SECTION(mag, "FFTmag");
RFFT32 fft=RFFT32_256P_DEFAULTS; long ipcb[N+2];long mag[N/2+1];
/* Define window Co-efficient Array and place the.constant section in ROM memory */const long win[N/2]=HAMMING256;
/* Create an instance of FFTRACQ module */RFFT32_ACQ acq=FFTRACQ_DEFAULTS; int xn,yn;
main(){
/* DATALOG module initialisation */ dlog.iptr1=&xn; dlog.iptr2=&yn; dlog.trig_value=0x800; dlog.size=0x400; /* Can log 1024 Samples */ dlog.init(&dlog);
/* Signal Generator module initialisation */ sgen.offset=0; sgen.gain=0x7fff; /* gain=1 in Q15 */ sgen.freq=10000; /* freq = (Required Freq/Max Freq)*2^15 */ /* = (931/3051.7)*2^15 = 10000 */ sgen.step_max=10000; /* Max Freq= (step_max * sampling freq)/65536 */ /* Max Freq = (10000*20k)/65536 = 3051.7 */
/* Initialize acquisition module */ acq.buffptr=ipcb; acq.tempptr=ipcb; acq.size=N; acq.count=N; acq.acqflag=1;
/* Initialize FFT module */ fft.ipcbptr=ipcb; fft.magptr=mag; fft.winptr=(long *)win; fft.init(&fft);
/*--------------------------------------------------------------------------- Nothing running in the background at present ----------------------------------------------------------------------------*/
while(1) { sgen.calc(&sgen); xn=sgen.out; yn=sgen.out; dlog.update(&dlog);
acq.input=((unsigned long)xn)<<16; acq.update(&acq);
if (acq.acqflag==0) // If the samples are acquired { RFFT32_brev(ipcb,ipcb,N); RFFT32_brev(ipcb,ipcb,N); // Input samples in Real Part
// fft.win(&fft); RFFT32_brev(ipcb,ipcb,N); RFFT32_brev(ipcb,ipcb,N); // Input after windowing fft.calc(&fft); fft.split(&fft); fft.mag(&fft); acq.acqflag=1; // Enable the next acquisition }
}
} /* End: main() */
Please don't use these code. This is obsolete code and should be removed from the download list. Use the code under controlSUITE. http://focus.ti.com/docs/toolsw/folders/print/controlsuite.html
The rfft.c is under /TI/controlSUITE/libs/dsp/FixedPointLib/v101/examples_ccsv4/2833x_FixedPoint_RFFT
try to use that code to port to ur ccs 3.3
I am now using code from /TI/controlSUITE/libs/dsp/FPU/v110/examples_ccsv4/2833x_RFFT. I don't have the above code you referred to.
I get the following errors when I compile the code:
undefined first referenced symbol in file --------- ---------------- _InitPieCtrl C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\fftrd.obj _InitPieVectTable C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\fftrd.obj _InitSysCtrl C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\fftrd.obj _RFFT_f32 C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\fftrd.obj _RFFT_f32_mag C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\fftrd.obj _RFFT_f32_sincostable C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\fftrd.obj
_InitPieCtrl /controlSUITE/device_support/f2833x/v132/DSP2833x_common/source/DSP2833x_PieCtrl _InitPieVectTable /controlSUITE/device_support/f2833x/v132/DSP2833x_common/source/DSP2833x_PieVect _InitSysCtrl /controlSUITE/device_support/f2833x/v132/DSP2833x_common/source/DSP2833x_SysCtrl _RFFT_f32 /controlSUITE/libs/dsp/FixedPointLib/v101/source _RFFT_f32_mag /controlSUITE/libs/dsp/FixedPointLib/v101/source _RFFT_f32_sincostable /controlSUITE/libs/dsp/FixedPointLib/v101/source
I really appreciate all your help, but I am still struggling with this.
I am able to get the error for RFFT_f32_sincostable to go away.
I only have the assembly files for RFFT_f32_mag & RFFT_f32.
When just adding the first three .c files I get the following errors:
undefined first referenced symbol in file --------- ---------------- _ADCINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ADC_cal C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_SysCtrl.obj _CsmPwl C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_SysCtrl.obj _CsmRegs C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_SysCtrl.obj _DATALOG_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _DINTCH1_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _DINTCH2_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _DINTCH3_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _DINTCH4_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _DINTCH5_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _DINTCH6_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _DSP28x_usDelay C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_SysCtrl.obj _ECAN0INTA_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAN0INTB_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAN1INTA_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAN1INTB_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAP1_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAP2_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAP3_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAP4_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAP5_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ECAP6_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EMUINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM1_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM1_TZINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM2_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM2_TZINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM3_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM3_TZINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM4_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM4_TZINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM5_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM5_TZINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM6_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EPWM6_TZINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EQEP1_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _EQEP2_INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _FlashRegs C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_SysCtrl.obj _I2CINT1A_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _I2CINT2A_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _ILLEGAL_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _INT13_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _INT14_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _LUF_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _LVF_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _MRINTA_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _MRINTB_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _MXINTA_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _MXINTB_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _NMI_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _PIE_RESERVED C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _PieCtrlRegs C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieCtrl.obj _PieVectTable C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _RFFT_f32 C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\fftrd.obj _RFFT_f32_mag C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\fftrd.obj _RTOSINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SCIRXINTA_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SCIRXINTB_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SCIRXINTC_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SCITXINTA_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SCITXINTB_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SCITXINTC_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SEQ1INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SEQ2INT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SPIRXINTA_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SPITXINTA_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _SysCtrlRegs C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_SysCtrl.obj _TINT0_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER10_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER11_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER12_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER1_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER2_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER3_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER4_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER5_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER6_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER7_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER8_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _USER9_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _WAKEINT_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _XINT1_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _XINT2_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _XINT3_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _XINT4_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _XINT5_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _XINT6_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _XINT7_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj _XintfRegs C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_SysCtrl.obj _rsvd_ISR C:\\CCStudio_v3.3MCU\\MyProjects\\FFT_Sample Code\\Debug\\DSP2833x_PieVect.obj
u still has erros associated with these RFFT_f32_mag & RFFT_f32? then add all the *.asm file under /controlSUITE/libs/dsp/FixedPointLib/v101/source/*.asm into ur project folder.
you have so many erros means ur project doesn't have header files and common source file. in another word, u haven't set up ur environment correctly. What i suggest is use the example code under http://focus.ti.com/docs/toolsw/folders/print/sprc530.html. There are a bunch of ccs v3 example code, u don't touch the header file and common file, do the same thing. replace
the useless code in main function with the essential code in rfft.c. You would be able to get rid of these error. It will certainly take some time but if you are patient enough it will work for sure.
Thank you for all your help. I was able to get it to run correctly. Thanks again.
Hey, my target device is 2812. I wonder if i can use the FFT examples which is mainly for 28335 under controlSUITE. What modifications should i make?
Thank you!