eTaskGetState breaks at link stage

groufosse wrote on Monday, February 24, 2014:

Using IAR EWARM 6.7.2, on Cortex M3 processor. Version 7.5.x worked fine, I did not previously use the function eTaskGetState.
After installing v8.0.0, I added a call to eTaskGetState. I then updated my FreeRTOSConfig.h file to set:

#define INCLUDEeTaskGetState 1

There are no errors/warnings with the compile of everything, but at the linker I get:
Error[Li005]: no definition for “eTaskGetState” [referenced from …RTOS_Dev\Debug\Obj\RTOShandler.o]

Any suggestions as to why the linker breaks on this?


rtel wrote on Monday, February 24, 2014:

The function is prefixed ‘task’ so is defined in tasks.c. If you search for eTaskGetState in tasks.c you will find it defined around line 935, and also see it is guarded with the INCLUDE_eTaskGetState preprocessor macro (with the underscore), as is also noted in the API documentation. if you are building that file and you have the preprocessor macro defined then the linker should not have a problem.


groufosse wrote on Monday, February 24, 2014:

aye…found the problem. I was missing the “_” in the define. Had “INCLUDEeTaskGetState”,
not “INCLUDE_eTaskGetState”

eyes wide shut… 8–]