Switch Task Hook

raphaelpereira wrote on Monday, 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

davedoors wrote on Tuesday, 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.

raphaelpereira wrote on Tuesday, July 22, 2008:

Great… sorry for the lame post!