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
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.