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.

Undefined Symbol First Referenced in File XXX Error

Other Parts Discussed in Thread: CONTROLSUITE

Hi, 

 

I am trying to run the TMDSHVMTRPFCKIT with the Sensoreless FOC example code but have the following error when building the project. Any help will be greatly appreciated. 

Thanks !

 

 

 

"C:/TI/controlSUITE/libs/math/IQmath/v15c/lib/IQmath.lib" 

 

 undefined first referenced     

  symbol       in file          

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

 __IQdiv2  ./HVPM_Sensorless.obj

 __IQmpy2  ./HVPM_Sensorless.obj

 

error: unresolved symbols remain

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

 

>> Compilation failure

C:\Program Files (x86)\Texas Instruments\ccsv4\utils\gmake\gmake: *** [HVPM_Sensorless.out] Error 1

C:\Program Files (x86)\Texas Instruments\ccsv4\utils\gmake\gmake: Target `all' not remade because of errors.

Build complete for project HVPM_Sensorless

  • From where did you import the Sensorless example project? Was it from within ControlSuite or a different location? It looks like it is having trouble resolving the path to IQMath.lib.

    Can you check that the macro CONTROLSUITE_HVMOTOR_ROOT is properly set up to point to your root installation folder for ControlSuite? The macro value can be checked by going to Window->Preferences->General->Workspace->Linked Resources.

    As additional references, the Sensorless FOC of PMSM.pdf guide (found in \controlSUITE\development_kits\HVMotorCtrl+PfcKit_v1.6\HVPM_Sensorless\~Docs) describes the CCS setup instructions in Page 19, and a more detailed guide on importing motor control example projects in general is in HVMotorCtrl+PFCKit_HowToRunGuide.pdf (found in \controlSUITE\development_kits\HVMotorCtrl+PfcKit_v1.6\~Docs).

    Hope this helps.

     

  • Aarti, thanks for the quick response. Yes, the macro does point to the correct root installation folder.Think I found the bug while waiting for a reply. Please see steps below and advise if it's ok. 

     

    1) Stepping through the how to run guide from the control suite, when project is first built, i had problem finding smopos.h

    1a) The original include file specify the path in fixed_V1.1, but there is no such folder in my installed control suite. controlSUITE/libs/app_libs/motor_control/math_blocks/fixed_V1.1

    1b)  A search in the folders indicate that smopos.h is in controlSUITE/libs/app_libs/motor_control/math_blocks/V3.1

    1c) Changed the path to V3.1 and error goes away.

     

    2) Next is error with undefined symbol _IQDIV2

    2a) One of the original include path is set to B version controlSUITE/libs/math/IQmath/v15b/include 

    2b) A search indicates that the _IQDIV2 is in the C version IQMath Library. controlSUITE/libs/math/IQmath/v15c/include 

    2c) Changed the include path to version C and still have same problem.

    2d) Browse through the include path sub-folders and find that there is another IQMath Library in controlSUITE/device_support/f2803x/v121/DSP2803x_common/include 

    2e) There is no _IQDIV2 in the DSP2803x_common IQMath Library, and it precedes the v15c folder. I found that either moving the v15c folder up or changing renaming the IQMath Library in DSP2803x_common to something else solves the problem.

    3) Is this ok? Do I have the right version of ControlSuite(v1.5 downloaded recently) and CCS (Version: 4.1.0.02005 from the CD)?

    4) I also have problem running the example code directly from the control suite. When I click on the example project ,I get this error "Unable to find a CCS4 installation, giving up". How do I solve this?

    Thanks!

  • Looking at the steps described, it sounds like you were somehow importing an older version of the project (where paths were set to point to older version directories) but had a newer version of controlSuite installed which didn't have those folders.

    I also have controlSuite 1.5 installed and if I import the project from \controlSUITE\development_kits\HVMotorCtrl+PfcKit_v1.6\HVPM_Sensorless, it builds without any errors.

    In any case, the steps you took to resolve the issue are correct. You just shouldn't have had to go through them if you have installed the latest version of ControlSuite and imported the latest version of the example project.

    The version of CCS 4.1.0 is pretty old. When you get a chance, I would recommend updating to the latest version 4.2.3. You can either update your current version by going to Help->Software Updates->Find and Install, or just download and install the full 4.2.3 version from http://processors.wiki.ti.com/index.php/Download_CCS. You can even have multiple versions of CCS installed as long as they are in different directories.

    ying tan said:
    I also have problem running the example code directly from the control suite. When I click on the example project ,I get this error "Unable to find a CCS4 installation, giving up". How do I solve this?



    I get the same error as well but I'm not sure why. If I find the reason I will post an update.

     

  • Installed the latest ccs and control suite , same problem with folders in ccs, but now I can open up the code from control suite.

    Thanks.

     

  • I now see the cause of the errors. I just downloaded and reinstalled ControlSuite. It seems that this latest installer only installs v2.0 and higher folders under \controlSUITE\libs\app_libs\motor_control\math_blocks. However, as you noticed, the example project HVPM_Sensorless sets include path to "${CONTROLSUITE_HVMOTOR_ROOT}/libs/app_libs/motor_control/math_blocks/fixed_v1.1. This results in the error of not being able to find smopos.h because the directory "fixed_v1.1" does not exist in the installation.

    I did not encounter this error in my previous installation because I did have the folder "fixed_v1.1" in my install, probably because I had used an older installer at the time.

    I will forward this infomation to the folks responsible for the ControlSuite software so they can address it. In the meantime the modifications you have done to get the project to build are correct.

  • If I can ask a different but still a ccs question on this thread:

    I have this error after clicking the debug button when going through the "how to run" guide. I managed to get pass debug and go to the first incremental build, but I think I did not shut it off properly, when I try rebuilding the whole code and press the debug button, I get the following:

    Thread[main](Suspsnded)

    0<symbol is not available> 0x3ff599

    Can you point me to where this is? or how can i reset/clear this thing so that I can go through the incremental builds again?

    Thanks.

     

  • Is this the same example project you are trying to build and run? The default debug settings usually loads the program and runs to main, so if you hit the "Debug Active Project" button it should launch the debug session and run to main and be halted there. Did you change any of the debug settings (under Target->Debug)?

     

  • Yes, it's the same project.

    Did not change the debug settings, but do you have a set of parameters I can verify against?

    Also, some additional info, if it gives more insight

    1. 0x3ff599 is ESTOP0 , and when I try to skip the step, it will run to the next step, but then return to the 0x3ff599 ESTOP0 line again.

    2. The variables I was watching(Idref,Iqref, Speedref, Isw, Enable Flag,etc)  also have some very large numbers in it,when I first set it up, it was mostly 0 values. 

    I tried running both the code with and without sensor, got the same error. Also tried loading to FLASH instead of RAM, same error. Talking about this, where can I find instruction to re-flash the F28035 card with the GUI demo software? 

    Any ideas what I can do to get pass this ESTOP0? 

    Thanks again!

     

     

  • Update:

    I found how to reflash the GUI software from tis e2e forum and managed to do that. 

    Now I dont have the ESTOP0 error anymore, but now i have other " symbol is not available ", sometimes it is MOVW, sometimes it is MOVL, sometimes it is SPM, etc. 

     

  • Ying,

    Since the original issue that this thread was started for is resolved, could you please start a new thread for this new issue? This helps in keeping the threads organized by content and easier for others searching forums to find information quickly.

    For the "symbol not available" issue it might be helpful if you could attach a screenshot and also provide additional details on when it occurs. I would also suggest posting this queston to the C2000 device forum as the folks responsible for the motor control kit and example software for the kit monitor that forum.

  • Aarti, I have not get a response from the C2000 forum and  I have had mixed success running the example in debug mode so far. Sometimes it will run ok, but a lot of times, I will get the ESTOP0 or other  "symbol is not available" error/problem. Do I have the wrong sequence? Can you direct me as where to start looking? 

  • All,

     

    I was having the same problem as ytan and found the fix for me.

    The "How to run guide" recommends changing a setting in the debug settings (under Target -> Debug).  Specifically, it says to check the setting to reset the target after loading.

    Unchecking this setting to reset the target after loading fixed my problem.

    Adam

  • i have problem with linker it shows , unresolved symbol , first refernced in.   .obj file... actualy i used vissim blinkled example to compile in ccsv4 without support

    vissim simulation.  probably first time i have error with header files then i resolve this error anf compile it then it work fine..but doesnot link .it shows this error 

    thanks in advance plz give me solution