event object parameter

abi01 wrote on Sunday, August 11, 2013:

all IDEs (for example IAR Embedded Workbench) support so called parameter ‘Event Object’ inside tasks window. They describe it as a name of the resource that has caused the task to be blocked. For example, task can be moved into the block state due to vTaskDelay() call. So my question is, which kernel object indicates the resource that puts the task into the block state? In previous described example, I would like to show vTaskDelay() as a resource that puts task into the block state.

davedoors wrote on Monday, August 12, 2013:

I’ve used a lot of IDEs and have not come across what you are describing. In IAR there is no tasks window. The compiler does not know about the RTOS, but it does provide an API that allows vendors to write extensions that do, but each vendor has their own and so decides how the information shown will be provided. FreeRTOS has the IAR StateViewer for this.

Normally to know the path a function took to get to a location you would inspect the stack frame.

rtel wrote on Monday, August 12, 2013:

In the StateViewer you can see the address of the object on which a task is blocked.  If you use the queue registry then you can assign a name to the object too to make it easier.  The objects themselves can be seen in the queue window.  If there NULL is shown in place of an event object then the task is blocked on vTaskDelay() or vTaskDelayUnitl().