[SOLVED] OZONE FreeRTOS HALT EmptyCallStack when using Float

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

  • [SOLVED] OZONE FreeRTOS HALT EmptyCallStack when using Float

    I am using OZONE(V2.56i) to debug FreeRTOS on a STM32F437, Compiler GCC (Atollic TrueStudio for STM32 Version: 9.0.0 )




    Starting the Programm In the Ozone-Debugger and Pause it(== crtl+F5), i can see the complete List of all FreeRTOS Tasks
    and by clicking the Task, i see the assoceated CallStack of the Task.
    - OK


    BUG:
    =======
    The CallStack of one Task disappeares compleatly after some time (Only a Null- Pointer is shown)

    This happens exactly after the first use of any FLOAT in this Threat - and stays until the next restart of the System.

    Changeing the Code to Integer-Aritmetic (Fixpoint-Integer/ Q31) helps to overcome the Problem - for some time.

    ---
    The critical Threat is my GUI-Thread.

    I am using emWin. (ST-library version)

    when opening a Window, that uses a Circle or ARC (In AA-Mode) the problem is back (- no CallStack shown in OZON ) for this thread (after pausing the thread).
    - I suppose there are some trigonometric functions like SIN inside the Draw-Circle(==using floats)


    By elininating the Circles, the OZONE works fine, and i have the CallStack.


    ==> I tried to switch emWin to Software-Floats, but i could not manage.


    INFO:
    =====
    When using a Breakpoint in the Thread, the Call-Stack is correct shown - the effect only occurs, when pausing the System in the Ozone-Debugger.



    I need the pause-functionality in Ozone with the Call-Stack, because the Thread hangs some times (Closed-Loop), and i do not know where --> (No Place to set the Breakpoint)




    I would be nice, if i can debug the Threads in Ozone, when Hardware-Supportet Float aritmetic is enabled
  • Hello,

    Thank you for your inquiry.
    Such an issue is now known to us.
    Could your provide us with a reproduction example project?
    Any STM32F4 eval board as baseboard would suffice.

    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 contact us per e-mail.
    Alternatively our support ticketing system can be used as well: segger.com/ticket/
  • Also reproduceable in Atollic with FreeRTOS --> Seams a Problem of the J-Link FreeRTOS Awarenes

    During preparing an Example for You, i discovered, that it is the same in Atollic-Debugger.

    --> seems to be a Problem with the FreeRTOS awareness of the J-Link, not a Problem of Ozone

    Test-Constellation:
    1) STM32F429I-DISCO, ST-Link changed to "J-Link On Board" with J-Link Reflash utility to enable FreeRTOS-Awareness
    2) CubeMX Project generated Project with 2 aditional Tasks, one calling a Subroutine with a Float
    3) Pressing Pause --> You will get the Pictures in the attachement: The CallStack of myTask02/StartTask02 is empty
    Images
    • EmptyFreeRtosCallStack_InAtollic.png

      57.31 kB, 800×600, viewed 95 times
    • MainWithFloat_InAtollic.png

      69.31 kB, 512×1,076, viewed 85 times
    Files
    • CubeMX_Main.zip

      (10.45 kB, downloaded 39 times, last: )
  • Hello,

    Thank you for providing the example project and reproduction steps.
    With them we were able to reproduce the issue.
    A fix should be available with the next Ozone release version planned next week.
    Sorry for any inconveniences caused.

    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 contact us per e-mail.
    Alternatively our support ticketing system can be used as well: segger.com/ticket/