Building FFTLIB project part of the FFTLIB release examples
Based on some e2e, I decided to go step by step through the building of FFTLIB example and assume I make all the possible errors on the way, and my attempts to overcome my errors.
I use CCS V6.1.3, and the C6678 release of processor SDK version 2.0.2 C667X. The FFTLIB version that is used in FFTLIB 2.0.0.2.
Note: There are other ways to import a project and build. The following are set of steps that I took to build the project.
The function that was chosen is the second function in the following list, fft_dp_1d_c2c_batch, that is, FFT of double precision values (and the calculation is double precision), one dimension complex FFT on multiple vectors (thus the batch). See the location of the example in the following screen shut:
After importing the project from the release there is a small red arrow next to the project name as show in the next screen shot.
This means that the project needs adjust its properties before it can be built. And indeed, if I click on rebuild project, this is the result:
Buildfile generation error occurred..
Product 'com.ti.biosmcsdk.pdk.C6678L' v1.1.2.6 is not currently installed and no compatible version is available. Please install this product or a compatible version.
Build stopped..
Next I look at the project properties:
First I tried to see where the AM57X came. I looked at the Resource linked and indeed there is a definition for the XDC_CG_ROOT part of the AM57 release. However, I cannot delete or edit the definition of XDC_CG_ROOT, so I had to find other solutions. (see screen shut below – edit and Remove and grew and do not work for this resource)
Thus here is what I do:
- Uncheck the unknown package
- Delete the packages that are part of the AM57 release and add the same packages from the C6678 release. The project will run on C6678
- Delete the un-resolved package and add pdk package that is part of the C6678 release
The following screen shots show how to add packages and then the RTSC state after this step
Next I tried to rebuild the project again. This time I get an error message – the edma rm library was not found in the library path –
So I look for the edma3_lld_rm.ae66 library in the latest release and I added it to the linker file search path:
But to my surprise I still have the same error:
How it can be? I did some more investigation and I found that the path comes from the linker command lnk.cmd:
The file lnk.cmd comes from directory \fftlib_2_0_0_2\packages\ti\fftlib\src\common\notmp I can change the original file or I can delete the link and copy the lnk.cmd file to the directory where my project is. In either case I change the path to the library to where dsplib.ae66 resides in my setting:
Building again the project there are multiple errors, see the screen shot below.
Going through the list of errors, it is obvious that all the errors are because of missing architecture definitions. To fix the problem I add the definition of the device architecture, namely adding SOC_C6678 as predefined symbol to the properties:
Building again and there is another linker error, this time the library
lib/c6678-evm/66/debug/edma3_lld_rm.ae66 Is not found. To this end I changed the edma package by deleting the current RTSC package and add the package to the latest release as you can see in the following screen shut (no edma is checked out and there is an addition edma package at the last line)
And now when I rebuild again it builds.
The following two screen shots show the RTSC page and the linker file search:
And the RTCS:
Ran