freeRTOS traceMOVED_TASK_TO_DELAYED_LIST vs traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() vs traceMOVED_TASK_TO_SUSPENDED_LIST(pxTCB)

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • freeRTOS traceMOVED_TASK_TO_DELAYED_LIST vs traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() vs traceMOVED_TASK_TO_SUSPENDED_LIST(pxTCB)

    Hi,

    First I would like to thank you for great free tool. You make world better place to live :)

    I'm using SystemView with FreeRTOS 9.0.0.
    I have a question regarding following trace macros:


    #define traceMOVED_TASK_TO_DELAYED_LIST() SEGGER_SYSVIEW_OnTaskStopReady((U32)pxCurrentTCB, (1u << 2))
    #define traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() SEGGER_SYSVIEW_OnTaskStopReady((U32)pxCurrentTCB, (1u << 2))
    #define traceMOVED_TASK_TO_SUSPENDED_LIST(pxTCB) SEGGER_SYSVIEW_OnTaskStopReady((U32)pxTCB, ((3u << 3) | 3))

    1) How SystemView interprets cause of stop (second parameter)?
    2) What are possible values?
    3) Why traceMOVED_TASK_TO_DELAYED_LIST() and traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() are using the same cause. As I understand the traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() means that task suspend time expired. Would be nice to mark it in SystemView APP.
    4) Is there possibility to redefine eventsID 0-31 in SystemView APP (description file) to print additional information (e.g I would like to add to traceMOVED_TASK_TO_DELAYED_LIST() the ticksToWait)


    Best Regards
    Lukasz Antczak
  • Hi,

    Thanks for the "flowers" :)

    The definition of task states can be configured in the description file, i.e. SYSVIEW_FreeRTOS.txt in the SystemView installation directory.

    If no task states are configured SystemView uses following default states, derived from the embOS task states:

    Source Code

    1. Cause = (State & 0xF8):
    2. 0 << 3: Ready
    3. 1 << 3: Wait for event
    4. 2 << 3: Wait for sema zero
    5. 3 << 3: Waiting
    6. 4 << 3: Wait for sema not zero
    7. 6 << 3: Wait for Queue not empty
    8. 7 << 3: Wait for mailbox not full
    9. 8 << 3: Wait for mailbox not empty
    10. 9 << 3: Wait for event object
    11. 10 << 3: Wait for Queue not full
    12. 20 << 3: Wait for Memory pool
    13. if (state & 4): with Timeout
    14. if (State & 3): suspended
    Display All


    For the Task State description have a look at the SystemView manual, chapter 10.1.5.2

    Best regards
    Johannes