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.

Difficulty including IQMath library (CCS 6.2)

Other Parts Discussed in Thread: MOTORWARE, DRV8305

I'm attempting to modify a MotorWare example project (project 01 for the boostxl_drv8305 and F28027x C2000 chip) to output sinusoidal PWM signals.
In doing so, I've used the IQMath library and I believe that I have successfully included the library file (already included in example project) as well as the correct header file to access the IQMath lib functions.

I've had a look at the IQMathLib.h header I am including and it contains a definition for the _IQSin() I am trying to use, but I get the following build error:

**** Build of configuration Flash for project proj_lab01 ****

"C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
'Building target: proj_lab01.out'
'Invoking: C2000 Linker'
"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/bin/cl2000" -v28 -ml -mt -O2 -g --define=FLASH --define=FAST_ROM_V1p7 --define=F2802xF --diag_warning=225 --display_error_number --asm_listing -z -m"proj_lab01.map" --stack_size=0x180 --warn_sections -i"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/lib" -i"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include" --reread_libs --priority --disable_auto_rts --diag_suppress=16002 --xml_link_info="proj_lab01_linkInfo.xml" --rom_model -o "proj_lab01.out" "C:/ti/motorware/motorware_1_01_00_15/sw/modules/fast/lib/32b/f28x/f2802x/2802xRevB_Fast_IQ_ROMSymbols.lib" "C:/ti/motorware/motorware_1_01_00_15/sw/modules/fast/lib/32b/f28x/f2802x/2802xRevB_Fast_ONLY_ROMSymbols.lib" "C:/ti/motorware/motorware_1_01_00_15/sw/modules/fast/lib/32b/f28x/f2802x/2802xRevB_Fast_RTS_ROMSymbols.lib" -lrts2800_ml.lib "C:/ti/motorware/motorware_1_01_00_15/sw/modules/fast/lib/32b/f28x/f2802x/fast_public.lib" "C:/ti/motorware/motorware_1_01_00_15/sw/modules/iqmath/lib/f28x/32b/IQmath.lib" "./CodeStartBranch.obj" "./adc.obj" "./clk.obj" "./cpu.obj" "./drv8305.obj" "./flash.obj" "./gpio.obj" "./hal.obj" "./memCopy.obj" "./osc.obj" "./pie.obj" "./pll.obj" "./proj_lab01.obj" "./pwm.obj" "./pwr.obj" "./spi.obj" "./timer.obj" "./usDelay.obj" "./user.obj" "./wdog.obj" "C:/ti/motorware/motorware_1_01_00_15/sw/ide/ccs/cmd/f2802x/F28027F.cmd"
<Linking>

undefined first referenced
symbol in file
--------- ----------------
__IQSin ./proj_lab01.obj

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "proj_lab01.out" not built

gmake: *** [proj_lab01.out] Error 1
>> Compilation failure
makefile:158: recipe for target 'proj_lab01.out' failed
gmake: Target 'all' not remade because of errors.

**** Build Finished ****


As can be seen, the IQmath.lib file for this CPU is in the linker's path.
The following shows the warning during compilation of my code:

'Building file: C:/ti/motorware/motorware_1_01_00_15/sw/solutions/instaspin_foc/src/proj_lab01.c'
'Invoking: C2000 Compiler'
"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/bin/cl2000" -v28 -ml -mt -O2 --include_path="C:/ti/motorware/motorware_1_01_00_15/sw/modules/hal/boards/boostxldrv8305_revA/f28x/f2802x/src/" --include_path="C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include" --include_path="C:/ti/motorware/motorware_1_01_00_15/sw/solutions/instaspin_foc/boards/boostxldrv8305_revA/f28x/f2802xF/src" --include_path="C:/ti/motorware/motorware_1_01_00_15/sw/modules/iqmath/src/32b/" --include_path="C:/ti/motorware/motorware_1_01_00_15" -g --define=FLASH --define=FAST_ROM_V1p7 --define=F2802xF --diag_warning=225 --display_error_number --asm_listing --preproc_with_compile --preproc_dependency="proj_lab01.d" "C:/ti/motorware/motorware_1_01_00_15/sw/solutions/instaspin_foc/src/proj_lab01.c"
"C:/ti/motorware/motorware_1_01_00_15/sw/solutions/instaspin_foc/src/proj_lab01.c", line 245: warning #225-D: function "_IQSin" declared implicitly
'Finished building: C:/ti/motorware/motorware_1_01_00_15/sw/solutions/instaspin_foc/src/proj_lab01.c'

I get an error about an implicit declaration, despite the declaration being present (or at least redefined to _IQ30SIN() and then that is defined extern) in the IQMath header in C:/ti/motorware/motorware_1_01_00_15/sw/modules/iqmath/src/32b/ (I use #include "sw/modules/iqmath/src/32b/IQmathLib.h" for good measure).


Here's the top of my C file: 

// the includes

// system includes
#include <math.h>

// modules
#include "sw/modules/math/src/32b/math.h"
#include "sw/modules/iqmath/src/32b/IQmathLib.h"
#include "sw/modules/memCopy/src/memCopy.h"


// drivers


// platforms
#include "main.h"


What's going on here? I'm certain I'm doing something stupid, so I've attached a screenshot of my work environment in CCS as well as a zip of the project.

 proj_lab01.zip