TaskSELECT_HIGHEST_PRIORITY_TASK TASK.C LINE2148

luisdanieldorta wrote on Sunday, May 04, 2014:

I am using freeRTOS V8 in code composer studio v5. Cortez-R4_TI_CCS5. And the compiler check this warning:

 #205 function declared implicity

This warning refers to:
task.c
line 2148
taskSELECT_HIGHEST_PRIORITY_TASK();

Regards,
Luis.

rtel wrote on Monday, May 05, 2014:

taskSELECT_HIGHEST_PRIORITY_TASK() is not a function, but a macro, which is defined at the top of tasks.c, which is also the file the macro is called from, so I don’t know why the compiler would output such a warning.

What taskSELECT_HIGHEST_PRIORITY_TASK() actually does depends on the value of configUSE_PORT_OPTIMISED_TASK_SELECTION in FreeRTOSConfig.h. Do you define configUSE_PORT_OPTIMISED_TASK_SELECTION in FreeRTOSConfig.h? If so, what is is set to?

Regards.

luisdanieldorta wrote on Tuesday, May 06, 2014:

Thanks,

configUSE_PORT_OPTIMISED_TASK_SELECTION is already define in FreeRTOSConfig.h

With configUSE_PORT_OPTIMISED_TASK_SELECTION set to 1 the warning appears, but set to 0 there is not warning.
The compiler version of CCS5 is TI v4.9.5. and the device i am working is a TI RM48l950.

luisdanieldorta wrote on Tuesday, May 06, 2014:

Some print screens…

luisdanieldorta wrote on Tuesday, May 06, 2014:

Some print screens…

rtel wrote on Tuesday, May 06, 2014:

__clz() is a compiler intrinsic - that is - it is provided by the compiler not by FreeRTOS. I’m not sure why it is not finding the definition, maybe it is just related to a compiler version updated? It might be that the name of the intrinsic has changed, try looking it up in the compiler’s documentation. Alternatives would be to:

  1. Ask TI about it, maybe on an TMS570/RM48 forum, or on a CCS forum.
  2. Implement the function yourself. You just need a few lines of assembly code that executes the clz instruction and returns the result.
  3. Just set configUSE_PORT_OPTIMISED_TASK_SELECTION to 0.

Regards.