Switch Task Hook

Posted by Raphael Derosso Pereira on July 21, 2008
Hello,

I'm working with FreeRTOS on a project and I needed to include a vTaskSwitchContextHook, because I need to perform some operations upon context switching. I would like to share this tiny patch that would allow anyone with the same need to achieve that.

--- tasks.c(revisão 5)
+++ tasks.c(cópia de trabalho)
@@ -1476,6 +1476,11 @@
same priority get an equal share of the processor time. */
listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopReadyPriority ] ) );

+#if ( configTASK_SWITCH_CONTEXT_HOOK == 1 )
+extern void vTaskSwitchContextHook(xTaskHandle *pxHandle);
+vTaskSwitchContextHook(pxCurrentTCB);
+#endif
+
traceTASK_SWITCHED_IN();
vWriteTraceToBuffer();
}

Regards

RE: Switch Task Hook

Posted by Dave on July 22, 2008
Thanks for sharing that with us however just under your code snippet you will see the macro traceTASK_SWITCHED_IN() which is provided for this purpose.

RE: Switch Task Hook

Posted by Raphael Derosso Pereira on July 22, 2008
Great.... sorry for the lame post!