Reason=27 means in Deatail section of task

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

    • Reason=27 means in Deatail section of task

      I'm using segger system view 3.2 on stm32f407 board. I've created 4 task in my application. One thing that I unable to understand is at every context switch I'm getting some value for Reason. I've uploaded a screenshot of it. Can someone please tell me what is the meaning of that reason value and where I can find that list to know more about that different reason value?
    • Hello,

      Thank you for your inquiry.

      vtol-ronit wrote:

      Can someone please tell me what is the meaning of that reason value and where I can find that list to know more about that different reason value?
      This depends on the RTOS you are using and how the SystemView instrumentation is applied.
      See the SystemView user manual for more information.
      Section 6.1.1.4 Task Stop Ready should explain where the value comes from.

      Best regards,
      Nino
      Please read the forum rules before posting: Forum Rules

      Keep in mind, this is not a support forum. Its main purpose is user to user interaction.
      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.
    • Like vtol-ronit I am also using FreeRTOS & F407, looking at section 6.1.1.4 of the Manual doesn't help.
      Are you able to say what sources the Reason value. Is it built into SystemView, or is it passed from the target to SystemView.

      Having searched through both FreeRTOS and SEGGER code without able to trace the source of the reason value so suspect it is coming directly from SystemView.
      Any thoughts/wisdom gratefully accepted.
    • New

      Hello,

      as documented, function SEGGER_SYSVIEW_OnTaskStopReady() holds this information.
      The reason is passed there. All you need to do is to check where the call to this function comes from and what parameter is passed on.

      It is RTOS specific what reason/cause means what. If you debug this you will find that in file SEGGER_SYSVIEW_FreeRTOS.h the following task state defines are used to pass the reason/cause e.g.
      #define traceMOVED_TASK_TO_SUSPENDED_LIST

      This is also by the way reason 27 as you can see from the define. So the task was stopped because it is now suspended. What that means see FreeRTOS documentation.

      To have it resolve to something more readable, you can adjust the RTOS description file in the SystemView install folder under /Description.
      For reference you can see how it is done in SYSVIEW_embOS.txt in line the line starting with TaskState.
      If you do the same for the FreeRTOS file, SystemView will no longer show "Reason xyz" but whatever you have defined here as task states.

      We will update this file for future version of SystemView so the reasons are resolved automatically.

      Best regards,
      Nino
      Please read the forum rules before posting: Forum Rules

      Keep in mind, this is not a support forum. Its main purpose is user to user interaction.
      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.