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.
Hello,
Past versions of CCS v5.4 below could easily track extern functions holding CTRL key + click on extern function names in *.h files. Since CCS v7.1 the mouse hover CTRL + click opens every *.h file before ever getting to the actual C function. Perhaps such is ok if the attribute key word (inline) exists in the extern voids named in *.h files. At optimization level=3 or level=4 there is no IDE action for CTRL key being searched to verify the function even exists anywhere in the project.
Is there a profile setting to correct that odd behavior or is the CTRL inaction suggesting the extern functions even by ROM symbols library don't actually exist?
How to track where many extern functions actually live on c:\ti path or even in the project when IDE remains void on mouse hover CTRL click?
Below calls believed to be ROM functions do nothing when called by main.c or any C module. Yet complied without error as if they actually perform a ROM function remain void in the absence of keyword (inline). Complier LTS V21 optimization level 3 (global) would seemingly link these calls as inline extern functions.
extern bool EST_getFlag_motorIdentified(EST_Handle handle);
extern bool EST_isMotorIdentified(EST_Handle handle);
extern void EST_setLs_d_H(EST_Handle handle,const float32_t Ls_d_H);
extern void EST_setLs_q_H(EST_Handle handle,const float32_t Ls_q_H);
extern float32_t EST_getLs_d_H(EST_Handle handle);
extern float32_t EST_getLs_d_H(EST_Handle handle);
Hello,
This would be an issue with the CDT indexer which don't surprise me given the rough state that it is in. You mentioned that this all worked in CCS 5.4 but noticed that issues arose with CCS 7.1 (and presumably greater). Did you notice the change in behavior with the same project? Would it be possible to create a very simple, self-contained, test case (as simple as possible) that works with 5.4 but not 7.1+? This would greatly help our investigations.
Thanks
ki
Hi Ki,
It was a typedef struct very last element did not have the identified bool flag. The other two LS~ are in the same struct near the top. The C2000 v21 compiler is not warning a reference to a tag key link is missing or something like that. How the missing bool flag stops the top two with similar link name in another struct may be related.
This happened after re-load of an existing debug secession later exited, similar to the phantom pointers issue. So the next time the MCU was reset the structs started to behave oddly in the above functions. The compiler could have warned this was happening but had no idea until later.
The other question seems related to the source locations of functions are not being discovered by the IDE code tracker via CTRL+click. Seemingly does not happen when the files are imported into the project workplace, rather than having links to c:\ti~
The other question seems related to the source locations of functions are not being discovered by the IDE code tracker via CTRL+click. Seemingly does not happen when the files are imported into the project workplace, rather than having links to c:\ti~
Linked source files that exist outside the project folder should be picked up by the indexer. However, this does not always apply to header files that in an external folder that hasn't been added to the indexer search path. This would impact the performace of "Open Declaration".
In order to have the include files available to the indexer you can add the include directories you wish the CDT to index in the project properties (make sure the "advanced settings" are exposed) if they are not there already:
One thing to clarify, the indexer and compiler are separate tools and mostly unrelated to each other. Some compiler options like predefined symbols will be picked up by the indexer however.
It used to skip the H file and go right to the C file in CCS5.4 but the imported preferences to CCS-7.1 made no difference. It seems the IDE has been modified along the line to make Indexer go to the H file first. It was also extern functions assumed to exist in symbols library that do nothing at all, even when path to includes exists.